#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));'。 –