VC++實用巨集定義

cbnotes發表於2014-08-28

前言:

在日常的程式設計工作中,常常定義一些實用的巨集方便呼叫,該文章將收集一些常用的巨集供大家參考,歡迎大家討論和新增!

指標釋放

最常用的就是指標的安全釋放。
對應new的釋放
#ifndef ReleasePtr
#define  ReleasePtr(Ptr)   {\
if (Ptr != NULL)\
{\
delete Ptr;\
Ptr = NULL;\
}\
}
#endif
對於new陣列的釋放
#ifndef ReleasePtrEx
#define  ReleasePtrEx(Ptr)   {\
if (Ptr != NULL)\
{\
delete[] Ptr;\
Ptr = NULL;\
}\
}
#endif
一個簡單的使用原則就是:new 和 delete、new[] 和 delete[] 對應使用
使用舉例:
char *pData = new StructXXXX ;
...//處理工程
ReleasePtr(pData );


char *pData = new char[100];
...//處理工程
ReleasePtrEx(pData );

關於delete和delete[]的區別請看我的另外一篇關於《delete與delete[]的真正區別》一文,地址:http://blog.csdn.net/cbnotes/article/details/38900799

相關文章