-3

次のコードを検討してください。

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

質問:

  1. null ポインターを削除すると、未定義の動作と見なされますか?
  2. C++11 または C++14 で何か変更がありましたか?
4

1 に答える 1

5

C++ で NULL ポインターを削除すると、未定義の動作と見なされますか?

いいえ、これは完全に合法的な操作です。

N3242から、[expr.delete]

delete のオペランドの値は null ポインター値の可能性があります

于 2014-09-08T22:48:32.110 に答える