[프로그래밍 언어론] 댕글링 포인터(Dangling Pointer)란? 댕글링 포인터 해결법


[프로그래밍 언어론] 댕글링 포인터(Dangling Pointer)란? 댕글링 포인터 해결법

댕글링 포인터(Dangling Pointer)란? 댕글링 포인터는 적절한 타입의 유효한 객체를 가리키고 있지 않은 포인터를 말한다. 예를 들어 이미 할당 해제된 메모리를 포인터가 계속 가리키고 있다면 해당 포인터는 댕글링 포인터이다. 예를 들어 메모리에 할당된 하나의 객체를 가리키는 두 개의 포인터 ptr1, ptr2가 있다고 하자. 이때 ptr1만을 free 하여 메모리를 해제해주면 ptr2는 Dangling Pointer가 돼버린다. 댕글링 포인터 해결법 1. Tombstone Approach 첫번째 방법은 tombstone(비석)이라고 불리는 특별한 cell을 설정해 포인터가 할당된 객체를 직접 가리키지 않고 비석을 통해 가리키도록 하는 방법이다. 예를 들어 [그림 3]처럼 ptr1을 free 한다..


원문링크 : [프로그래밍 언어론] 댕글링 포인터(Dangling Pointer)란? 댕글링 포인터 해결법