@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
本文探讨了在C++中安全删除空指针的概念,并提出使用RAII和智能指针作为更优雅的选择。通过一个实用宏和示例代码,解释了如何避免直接操作原始指针带来的风险。
1689

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



