在 C++ 中删除空指针是不是被认为是未定义的行为? [复制]
Posted
技术标签:
【中文标题】在 C++ 中删除空指针是不是被认为是未定义的行为? [复制]【英文标题】:Is deleting a null pointer in C++ considered undefined behaviour? [duplicate]在 C++ 中删除空指针是否被认为是未定义的行为? [复制] 【发布时间】:2014-11-02 06:15:30 【问题描述】:考虑以下代码:
int main()
int *i = nullptr;
delete i;
问题:
-
删除空指针是否被视为未定义行为?
在 C++11 或 C++14 中有什么变化吗?
【问题讨论】:
这个问题有一个zillion duplicates... @40two 不清楚需要搜索 c++ delete null pointer 才能找到:P 你确实有不同的拼写re“空指针”和“空指针”。我让他们都说“空指针”,这是技术上正确的拼写。 【参考方案1】:在 C++ 中删除 NULL 指针是否被视为未定义行为?
不,这是完全合法的操作。
来自 N3242,[expr.delete]
delete的操作数的值可能是空指针 价值
【讨论】:
引用于this answer。以上是关于在 C++ 中删除空指针是不是被认为是未定义的行为? [复制]的主要内容,如果未能解决你的问题,请参考以下文章