#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)); '이 필요하다. –