C 공부 시작한 지 얼마 안 됐는데 자꾸 이 에러 만나서 멘붕이에요.
#include <stdio.h>
int main(void) {
int *p = NULL;
*p = 42;
printf("%d\n", *p);
return 0;
}
컴파일은 경고도 없이 잘 되는데, 실행하면 이렇게만 뜨고 죽어요.
Segmentation fault (core dumped)
줄번호도 안 알려주니까 어디가 문제인지도 모르겠고요. 세그폴트라는 게 정확히 뭔가요? 그리고 NULL 넣은 포인터에 값을 쓰면 왜 안 되는 건지, 초보가 이해할 수 있게 설명 좀 부탁드려요.