delete null 在unix下有问题吗?

cuibaozhen 2009-07-12 07:15:51
Unix下的编译器,支持delete null
delete null会有问题吗?
多指教
...全文
20 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gunsand 2009-07-13
  • 打赏
  • 举报
回复
应该允许。分配内存 给NULL 然后DELETE。
yshuise 2009-07-12
  • 打赏
  • 举报
回复
delete删除空指针不会出错。它自己有检查,是空指针,就不执行。
goodname 2009-07-12
  • 打赏
  • 举报
回复
同意4楼的说法。

c++标准定义了delete 空指针是允许的。
大前置 2009-07-12
  • 打赏
  • 举报
回复
从编程思想上来说,还是判断一下NULL比较好

以后如果有代码移值也好做点啊
Treazy 2009-07-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pengzhixi 的回复:]
行为应该未定义吧
[/Quote]

C++标准中定义了这种行为是可以的!

ISO-IEC-14882
...In either alternative, if the value of the operand of delete is the null pointer the operation has no effect....
pengzhixi 2009-07-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 cuibaozhen 的帖子:]
Unix下的编译器,支持delete null
delete null会有问题吗?
多指教
[/Quote]

行为应该未定义吧
lkgd1982 2009-07-12
  • 打赏
  • 举报
回复
可能跟平台还是有关系的!一般delete前就会判断一下!
大前置 2009-07-12
  • 打赏
  • 举报
回复
UNIX(AIX、SCO)

程序没有出现coredump现象

但并不能说明什么

必竟delete NULL 是不安全的
zzcmx2008 2009-07-12
  • 打赏
  • 举报
回复
当前标准(C++98)里,删除空指针是允许的,不执行任何动作。

但是可能在今年(2009年)或者明年,会推出新标准C++0x,新标准目前是草案,还不是正式的。

另外,Effective C++说delete null指针则什么也不干,但肯定是没有问题的。新的标准修改了这条么?
windsting 2009-07-12
  • 打赏
  • 举报
回复
C++的规定是 delete null; 不会出问题,编译器处理这个应该也很容易,
但谁能知道所有的事情呢?具体到你用的系统,试一次不就知道了么?
这不是“Unix 下的编译器”的问题,而是所有“编译器的所有版本”都可能有不同结果的问题,
貌似没有 100% 支持C++标准的编译器,但只要它声明了支持标准中对"delete null;"的规定,
就可以基本放心了,但是自己再试试应该也是合理的。

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧