컴파일 에러와 런타임 에러

2019. 11. 18. 15:07PL/C++

[참고] https://spaghetti-code.tistory.com/35

 

#include <stdio.h>

int main(void) {
	void* ptr = NULL;
	int a = 3;
	ptr = &a;
	printf("%d\n", *ptr);
}

 

위 에러는 '식이 완전한 개체 형식의 포인터여야 합니다'라고 컴파일 오류를 낸다. '타입체크 에러'로 분류되는 것 같다

 

[수정 후]

#include <stdio.h>

int main(void) {
	void* ptr = NULL;
	int a = 3;
	ptr = &a;
	printf("%d\n", *(int*)ptr);
}

 

할당되지 않는 영역에 대해서 읽기를 시도할 때는 런타임 에러를 발생시킨다

 

#include <stdio.h>

int main(void) {
	printf("%d\n", *(int*)(0x0A0A));
	return 0;
}