C 指向结构的指针指向结构的指针
我不能让它工作! 抛出seg错误C 指向结构的指针指向结构的指针,c,C,我不能让它工作! 抛出seg错误 #include <stdio.h> #include <stdlib.h> typedef struct { size_t NbOfElmts; float * Weights; int * Areas; } ListOfCoeff; typedef struct { size_t NbOfElmts; ListOfCoeff * Elmts; } SetOfList
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
size_t NbOfElmts;
float * Weights;
int * Areas;
} ListOfCoeff;
typedef struct
{
size_t NbOfElmts;
ListOfCoeff * Elmts;
} SetOfListsOfCoeff;
int main( int argc, const char* argv[] ){
SetOfListsOfCoeff * theList;
int N = 10;
float *A = malloc( N * sizeof(*A) );
for ( int i = 0; i < N; i++)
A[ i ] = i;
for ( int i = 0; i < N; i++ )
( (theList[ i ].Elmts)->Weights)[ i ] = A[ i ];
for ( int i = 0; i < N; i++)
printf("\n List = %f", ( (theList[ i ].Elmts)->Weights)[ i ] );
return 0;
}
您尚未为列表分配任何内存。这是一个次要问题,但:int N=10;浮点数*A=malloc(N*sizeof(*A));表示指向浮点“a”的指针指向浮点指针大小的10倍。我想你的意思是sizeof(float)而不是指向float的指针。@matthewcarey我觉得这是对的,也许你忽略了sizeof表达式中的
*
。是的,你是对的,我的*有点纠结:我完全忘了!谢谢
( (theList[ i ].Elmts)->Weights)[ i ] = A[ i ];