前言:
在日常的编程工作中,常常定义一些实用的宏方便调用,该文章将收集一些常用的宏供大家参考,欢迎大家讨论和添加!
指针释放
最常用的就是指针的安全释放。
对应new的释放
#ifndef ReleasePtr
#define ReleasePtr(Ptr) {\
if (Ptr != NULL)\
{\
delete Ptr;\
Ptr = NULL;\
}\
}
if (Ptr != NULL)\
{\
delete Ptr;\
Ptr = NULL;\
}\
}
#endif
对于new数组的释放
#ifndef ReleasePtrEx
#define ReleasePtrEx(Ptr) {\
if (Ptr != NULL)\
{\
delete[] Ptr;\
Ptr = NULL;\
}\
}
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.youkuaiyun.com/cbnotes/article/details/38900799

本文介绍了一种用于C++编程中指针安全释放的宏定义方法,包括针对new分配内存的ReleasePtr宏及针对new[]数组分配内存的ReleasePtrEx宏。通过这些宏可以有效避免野指针问题,确保程序的稳定性和安全性。
3408

被折叠的 条评论
为什么被折叠?



