typedef struct{
int number;
char name[100];
} Apple
typedef struct{
Apple *apple;
int bit[2];
} AppleArray;
int main(){
AppleArray *aArray;
loadApple(&aArray);
}
loadApple(AppleArray **aArray){
*aArray = NULL;
for(i=0; i<100; i++){
*aArray = realloc(*aArray, (i+1) * sizeof(AppleArray));
/*SEGFAULT here*/
aArray[i]->apple = NULL;
for(j=0; j<2; j++){
aArray[i]->apple = realloc(aArray[i]->apple, sizeof(Apple) * (j+1))
}
}
}
我想拥有一个具有特定大小的AppleArray。每个AppleArray将有两个Apple。但是,当我将NULL分配给aArray [i] - > apple时,我得到段错误。那里有什么问题?获取结构数组中的结构的值
编辑:
loadApple(AppleArray **aArray){
*aArray = malloc(100 * sizeof(AppleArray));
for(i=0; i<100; i++){
/*SEGFAULT here*/
aArray[i]->apple = NULL;
for(j=0; j<2; j++){
aArray[i]->apple = realloc(aArray[i]->apple, sizeof(Apple) * (j+1))
}
}
}
我认为它应该是* aArray [i]。请检查我的答案。 – Jay
@Jay错误:行中的赋值中的不兼容类型* aArray [0] - > apple = NULL; –
Try(* aArray)[0] .apple = NULL; – Jay