본문 바로가기

Cpp

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

댕글링 포인터?

 

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

 

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;};

 

 

 

'Cpp' 카테고리의 다른 글

템플릿(template)  (0) 2023.06.20
콜백 함수  (0) 2023.06.19
L-value, R-value  (0) 2023.06.19
스마트 포인터  (0) 2023.06.13
얕은 복사 깊은 복사  (0) 2023.06.13