ZT SAFE_DELETE

SAFE_DELETE

分类: c/C++ 706人阅读 评论(2) 收藏 举报

我发现学程序大家差不多都有相似的地方,当一个人从这个地方摔倒的时候,后续总是不断的有人摔摔的,从论坛的提问就能看出来,因为自己学习的时候是 每一一个人带的情况下,独自研究c++,现在仍然记得做c++的第一个星期,每写一句代码都要查一下资料,搜索一下网络,差不多写三句代码都要查半天的痛 苦了,好的是用了一个多月的时间,c++实现了入门,写出了完成端口,视频,Flash加密,破解了别人一个带有数学公式和化学公式的超文本编辑器,呵 呵,但是每有以前的c#和在游戏公司做网站的经验,是无论如何也做不到的.所以学习初学者是如何一步一步入门到提高到成为高手是很好的学习办法,因为大家 都有相似性,除非你身边有个高人,每遇到一个问题总有人帮你解决,那你就根本体会不到独立研究的那种大喜大悲的妙不可言! 

指针从这里到那里,一个不小心就导致程序的内存访问违例,想了好多办法也不知道是从哪儿抛出的异常。

如果是错误的使用了指针,那当删除它的时候,肯定会导致程序异常的,想了一个笨办法,每当要delete时,用下面的宏,如果出错了,就把它记录到日志中,并把指针的变量名也记下来,再顺着这个变量找回去,一般是会有所收获的(通常能找到哪个指针的使用有问题。)

#define SAFE_DELETE(x) /
do  /
{ /
CString target=#x;/
try{ /
 if(x != NULL){delete x; x = NULL;} /
}catch(...){ClientLogger::log(" Release "+target+" error");}/
}while(0)

原文地址:https://www.cnblogs.com/jeanschen/p/3503345.html