是否在C ++中删除空指针被认为是未定义的行为?

时间:2014-09-08 22:48:02

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

考虑以下代码:

int main() {
  int *i = nullptr;
  delete i;
}

问题:

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

1 个答案:

答案 0 :(得分:5)

  

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

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

来自 N3242 [expr.delete]

  

delete的操作数的值可以是空指针   值