-2
我无法完成工作! 引发seg故障。指向结构的指针指向结构
#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;
}
在该行的问题:
((theList[ i ].Elmts)->Weights)[ i ] = A[ i ];
这是一个小问题,但是: int N = 10; float * A = malloc(N * sizeof(* A)); 表示指向浮点“A”的指针指向浮点指针大小的10倍。我认为你的意思是sizeof(float)不是指向float的指针。 – 2014-12-04 16:01:26
@MatthewVCarey它看起来对我来说是正确的,也许你忽略了sizeof表达式中的'*' – 2014-12-04 16:48:08
是的,你是对的,我正在扭曲我的*。 – 2014-12-04 21:47:50