Я немного играю с динамическим распределением памяти, но я не понимаю. При распределении некоторой памяти с помощью оператора new
я должен уничтожить память, указатель указывает на использование delete
.
Но когда я пытаюсь, эта команда delete
не работает, поскольку пространство, на которое указывает указатель, похоже, не было опустошено.
В качестве примера возьмем этот по-настоящему базовый фрагмент кода:
#include <iostream>
using namespace std;
int main()
{
//I create a pointer-to-integer pTest, make it point to some new space,
// and fulfill this free space with a number;
int* pTest;
pTest = new int;
*(pTest) = 3;
cout << *(pTest) << endl;
// things are working well so far. Let destroy this
// dynamically allocated space!
delete pTest;
//OK, now I guess the data pTest pointed to has been destroyed
cout << *(pTest) << endl; // Oh... Well, I was mistaking.
return 0;
}
Любая подсказка?