@is2120
1. 在 c++ 中删除一个 NULL pointer (空指针)是安全的
2. 标准中相关内容如下:
"In either alternative, if the value of the operand of delete is the
null pointer the operation has no effect."
3. 一个有用的宏 @is2120
#define my_delete(x) {delete x; x = NULL;}
4. 更好的方法
使用RAii
更为优雅的方式是使用 smart pointer。
5. delete pointer;
这个语句会发生什么?
它不会改变pointer所指向的地址,而只是释放pointer指向的内存空间。
此时执行 pointer = NULL; 是个存在争议的话题;最好不必如此
更好的方式还是如上建议,使用 smart pointer,而不是直接操作 raw pointer。
@is2120
标签:is2120,c++,NULL,pointer,smart,delete From: https://blog.51cto.com/u_16156420/6449060