[동적 메모리 해제 매크로] SAFE_DELETE();
====================================================================================
#define SAFE_DELETE(p) { if(p) { delete (p); (p)=0; } }
#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; } }
#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=0; } }
void main() {
int* pi = NULL;
pi = new int();
ASSERT( pi );
*pi = 3.141592f;
TRACE( "pi = %i \n", *pi );
SAFE_DELTE( pi );
}
// 차이점은 해제하려는 동적 메모리 포인터가 NULL인지를 검사한 후 해제 한다.
- 동적 메모리 해제 매크로이다.
- 포인터가 NULL 인 경우의 crash를 막기 위해, 해제하려는 포인터가 NULL 인지를 검사.
- 동적 메모리 해제 매크로이다.
- 포인터가 NULL 인 경우의 crash를 막기 위해, 해제하려는 포인터가 NULL 인지를 검사.
- 해제 후에는 포인터를 NULL로 초기화
라벨 수정: 2006. 6월호 마이크로소프트웨어 - C++ 99% 활용법 생성자,소멸자 활용하기 p317
'[ Programing ] > C++' 카테고리의 다른 글
[ 기초 ] 조건 없이 바로 최적 조건값 리턴 (0) | 2009.12.24 |
---|---|
[ 기초 ] 파일 저장하기 fopen(); fprintf(); fclose(); (0) | 2009.12.24 |
[ 기초 ] 파일 불러오기 fopen(); fscanf(); feof() fclose(); (0) | 2009.12.24 |
[ 기초 ] 전 처리기 활용 #ifdef, #ifndef (0) | 2009.12.24 |
[ 기초 ] 매크로 설정 #define (0) | 2009.12.23 |