在 c++ 中删除一个 NULL pointer (空指针)
@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#CNBLOGS.T2169364049[T1,L65,R1,V259]:备忘
$ € ₤ ₭ ₪ ₩ ₮ ₦ ₱ ฿ ₡ ₫ ﷼ ¥ ﷼ ₫ ₡ ฿ ₱ ₦ ₮ ₩ ₪ ₭ ₤ € $