Por que a exclusão não destrói nada?
Estou brincando um pouco com a alocação dinâmica de memória, mas não entendo nada. Ao alocar alguma memória com onew
declaração, eu devo ser capaz de destruir a memória que o ponteiro aponta para usardelete
.
Mas quando eu tento, issodelete
O comando parece não funcionar, pois o espaço para o qual o ponteiro está apontando não parece ter sido esvaziado.
Vamos tomar este pedaço de código verdadeiramente básico como exemplo:
#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's 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;
}
Qualquer pista ?