-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