【问题标题】: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;
}

问题:

  1. 删除空指针是否被视为未定义行为?
  2. 在 C++11 或 C++14 中有什么变化吗?

【问题讨论】:

  • 这个问题有一个zillion duplicates...
  • @40two 不清楚需要搜索 c++ delete null pointer 才能找到:P
  • 你确实有不同的拼写re“空指针”和“空指针”。我让他们都说“空指针”,这是技术上正确的拼写。

标签: c++ c++11 undefined-behavior c++14 null-pointer


【解决方案1】:

在 C++ 中删除 NULL 指针是否被视为未定义行为?

不,这是完全合法的操作。

来自 N3242[expr.delete]

delete的操作数的值可能是空指针 价值

【讨论】:

猜你喜欢
  • 2014-06-10
  • 2014-07-30
  • 2011-09-04
  • 2017-02-17
  • 2016-03-13
  • 2018-09-12
  • 2012-05-06
  • 1970-01-01
  • 2018-08-19
相关资源
最近更新 更多