首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对空指针调用delete或delete[]

对空指针调用delete或delete[]
EN

Stack Overflow用户
提问于 2018-05-11 10:12:37
回答 1查看 4K关注 0票数 1

在调用deletedelete[]之前,总是忽略空指针检查是否安全,特别是在编写跨平台代码部分时?

我记得几年前(三到四次),我编写的相同的代码在MS上运行(用MSVCv12工具链编译),但是用g++编译的版本(不幸的是,我不记得g++版本)抛出了空指针引用。我发现了当时可能是编译器错误的信息。

我已经找到了this SO thread,但是在阅读了它之后,我仍然不太确定它是否安全,如果是的话-- C++标准的哪个版本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-11 10:15:25

是的,自C++98以来的标准保证了deletedelete[]对空指针没有任何影响。

C++98§5.3.5/2

,如果delete的操作数的值是null指针,则操作无效。

在第一个标准之前也是如此,当时的语言是由“附加说明的参考手册”界定的。

关于

为Linux编译的版本(不幸的是,我不记得g++版本)抛出了空指针引用

如果没有一个具体且最好是完整的再现行为的示例,就不可能讨论这个问题。它与删除一个空指针无关。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50290022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档