C++ delete and NULL

Automatically generated description.

Странно, что delete лишь вызывает деструктор и освобождает память, но не изменяет указатель.

#include <iostream>
using namespace std;

class Test {
public:
   Test() {cout << "constructor" << endl;}
   ~Test() {cout << "destructor" << endl;}
};

int main(int argc, char*argv[]) {
  Test * test = new Test;
  cout << test << endl;
  delete test;
  cout << test << endl;
  return 0;
}
Результат:
constructor
0x95f5008
destructor
0x95f5008
<p>Почему delete не обнуляет указатель?<br />

Это избавило бы программиста от проблемы двойного освобождения памяти.

delete, однако, проверяет указатель на <span class="caps">NULL</span> перед вызовом деструктора.


[SO Q&amp;A](http://stackoverflow.com/questions/704466/why-doesnt-delete-set-the-pointer-to-null)


Ок, производительность, вот ответ.