#include<stdio.h>
#include <stdlib.h>
struct a1 {
int value ;
};
struct cf {
struct a1 *a1;
int val;
};
main(){
struct cf *cf = malloc(sizeof(struct cf));
cf->a1->value = 45;
printf("cf->a1->value = %d \n",cf->a1->value);
}
当我绑定执行此C代码我得到一个分段错误(核心转储)!为什么在下面的C代码中发生分段错误
您已经为'cf'分配的空间,但是你有什么理由认为它'结构a1'指针,'a1',指向访问内存? 'cf-> a1'是一个没有意义的值,你不应该试图解引用它。你需要一个介于中间的'cf-> a1 = malloc(sizeof(struct a1));'。 –