728x90
Pointer에는 '값이 NULL일 때에는 아무것도 하지 않는다'는 규칙이 있다. 메모리 배열에서 0번만은 사용하면 안된다고 정해져 있는 것이다.
int* p = NULL;
*p = 4; // 쓰기 오류.
int a = *p; // 읽기 오류.
따라서 앞에서와 같은 코드는 규칙을 위반했기 때문에 프로그램이 멈추게 된다. delete한 포인터에 NULL을 넣는 이유는 이런 성질을 디버그에 활용하려는 것이다. delete해도 포인터에는 값이 남아 있는데 그 값을 이용하면 메모리에 접근 할 수 있다. 이것을 방지하기 위해 delete를 한 이후에는 NULL을 넣는 버릇을 들이도록 하자.
728x90
'Basic Programming > C, C++' 카테고리의 다른 글
C++ - Frame rate (0) | 2016.03.07 |
---|---|
C++ - 2차원 배열 동적할당 (0) | 2016.03.04 |
C++ - Effectvice C++의 55가지 테크닉 Part - 4 (0) | 2016.03.04 |
C++ - Effectvice C++의 55가지 테크닉 Part - 3 (0) | 2016.03.04 |
C++ - Effectvice C++의 55가지 테크닉 Part - 2 (0) | 2016.03.03 |