在 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

原文链接: https://www.cnblogs.com/IS2120/archive/2011/05/15/6746047.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    在 c++ 中删除一个 NULL pointer (空指针)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/25478

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午3:20
下一篇 2023年2月8日 上午3:21

相关推荐