동적 메모리 해제 매크로

Programming/C++ 2015. 5. 15. 15:12

#define SAFE_DELETE(p)            {if(p) {delete (p);   (p) = 0; } }

#define SAFE_DELETE_ARRAY(p)     {if(p) {delete[] (p);  (p) = 0; } }

#define SAFE_RELEASE(p)            {if(p) { p->Release(); (p) = 0; } }


void main()

{

int *pi = NULL;

pi = new int();


ASSERT( pi );

*pi = 3.141592f;

SAFE_DELETE(pi);

}


** 포인터가 NULL인 경우의 crash를 막기 위해서 해제하려는 포인터가 NULL인지를

    검사하여야 한다.

    해제 후에는 포인터를 NULL로 초기화한다.





출처 : 마이크로소프트웨어 c++ 99% 활용법

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

생성자 / 소멸자  (0) 2015.05.29
LARGE_INTEGER  (0) 2015.05.22
깊은 복사와 얕은 복사  (0) 2015.05.13
복사생성자  (0) 2015.05.13
클래스와 배열  (0) 2015.05.13
admin