Cpp

허상 포인터(댕글링 포인터)

__sapar 2023. 6. 19. 18:22

댕글링 포인터?

 

해제된 메모리 영역을 가리기는 포인터를 댕글링 포인터라고 한다.

 

int *a = new int(10);
int *b = a;
cout << *a << "\n";

delte a;

cout << *b << "\n"; // 이미 해제된 메모리를 가리키고 있다..!! 댕글링 포인터

이러한 댕글링 포인터를 예방 및 해결 할 때는

a 를 해제한 후 nullptr 을 대입하고, b 사용이전에 a가 nullptr 인지 아닌지 검사해야한다.

if(a) {delete a; a = nullptr;};