Warum wird nichts gelöscht, um etwas zu zerstören?

Ich spiele ein bisschen mit dynamischer Speicherzuweisung, bekomme aber keinen Punkt. Bei der Zuweisung von Speicher mit demnew Anweisung, ich soll in der Lage sein, den Speicher zu zerstören, auf den der Zeiger mit @ verweidelete.

Aber wenn ich es versuche, diesedeleteer Befehl @ scheint nicht zu funktionieren, da der Bereich, auf den der Zeiger zeigt, nicht geleert zu sein scheint.

Nehmen wir dieses wirklich grundlegende Stück Code als Beispiel:

#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;  
}  

Irgendeine Ahnung

Antworten auf die Frage(16)

Ihre Antwort auf die Frage