#include <iostream>
using namespace std;
int main ()
{
int myarray [10];
int * ptr1;
ptr1 = new (nothrow) int [10];
cout << "ptr1 = " << ptr1 << endl;
delete [] ptr1;
cout << "ptr1 = " << ptr1 << endl;
int a = 4;
int * ptr2;
ptr2 = &a;
cout << "ptr2 = " << ptr2 << endl;
delete ptr2;
cout << "ptr2 = " << ptr2 << endl;
return 0;
}
Он выводит
ptr1 = 0x9941008
ptr1 = 0x9941008
ptr2 = 0xbfca5cd4
Вопросы:
1) Почему второй отпечаток ptr1
все еще возвращает то же значение?Память освобождается, но указатель сохраняет значение адреса памяти?
2) Почему не выводится второй отпечаток ptr2
?