Make Unreal REAL.
article thumbnail

 

댕글링 포인터란?

이미 할당 해제된 메모리를 가리키는 포인터

 

아래와 같은 상황에서 ptr2가 댕글링 포인터가 된다.

void main()
{
    int *ptr1 = new int;
    int *ptr2 = ptr1;
    
    delete ptr1;
}

 

댕글링 포인터로 인한 문제를 방지하는 법 1

// delete 이후 포인터의 값을 nullptr로 설정해준다.
void main()
{
    int *ptr1 = new int;
    *ptr1 = 10;
    
    delete ptr1;
    ptr1 = nullptr;
    
    // Null Reference exception
    *ptr = 5;
}

 

댕글링 포인터로 인한 문제를 방지하는 법 2

// 여러 포인터가 같은 메모리 영역을 가리키지 않도록 한다.
void main()
{
    int *ptr1 = new int;
    int *ptr2 = new int;
    
    delete ptr1;
    delete ptr2;
}​

'C++ > 기타' 카테고리의 다른 글

템플릿(Template)  (0) 2023.01.20
깊은 복사와 얕은 복사  (0) 2023.01.20
std::iterator와 std::reverse_iterator  (0) 2023.01.20
메모리 누수(Memory Leak)  (0) 2023.01.19
nullptr과 NULL  (0) 2023.01.19
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그