void pointer 관련 해서 질문드립니다.

mindon의 이미지

아래 코드가 core dump가 납니다.
분석 좀 부탁드립니다.

{
void *ptr = NULL;
int tmp = 2;

ptr = (int*)&tmp;

printf("ptr content : 0x%04x\n", *((int*) ptr) );

}

void 포인터에 int type의 address를 넣고 casting하면서 print하는데
core dump가 나더군요.

size가 4인 모든 type이 그렇습니다. 가령 unsigned 나 enum 같은 것도 그러더군요..

그런데 이상한건 char (1byte)나 short (2byte)에 대해서는 그렇지 않습니다.

답변 덧글 부탁드립니다.

sodomau의 이미지

이상하군요. 전혀 코어 덤프가 날 코드가 아닌 정상적인 코드인데요.
저는 결과가 잘 나옵니다.