【发布时间】:2018-10-21 17:38:40
【问题描述】:
在调用 delete 或 delete[] 之前总是忽略 NULL 指针检查是否安全,尤其是在编写跨平台代码部分时?
我记得几年前(三到四年)我编写的相同代码在 MS Windows 上运行(使用 MSVCv12 工具链编译)但使用 g++ 为 Linux 编译的版本(不幸的是,我不记得 g++ 版本)抛出 NULL指针引用。我发现当时可能是编译器错误。
我找到了this SO thread,但在阅读后我仍然不太确定它是否安全,如果安全的话 - 来自哪个版本的 C++ 标准?
【问题讨论】:
-
“抛出 NULL 指针引用”是什么意思?
-
"我发现当时可能是编译器错误。" 编译器如何检查被删除的指针是
nullptr,并发出错误为了它? -
@AlgirdasPreidžius 很确定他们的意思是“编译器错误”。
-
没错,我的意思是“编译器错误”而不是“编译器错误”。我很抱歉我的错误。
标签: c++ memory-management null