*Test = NULL; // Das nullt den Speicher des Objektes
Um das zu machen müsstest Du den =operator überladen, da Du auf ein dereferenziertes Objekt zugreifst. Warum willst Du den Speicher 'nullen', das bringt doch nichts. Wenn Du ein delete aufgerufen hast, ist der Bereich doch wieder freigegeben (nicht ge'nullt') und der Prozess kann ihn wieder neu allokieren.
Grüße Alex
weil mir das in der liste vorher so gesagt wurde, les dir mal mein erstes post durch, dann weißt du wo mein problem ist, oder mail mir wenn du es nicht hast, dann schick ichs dir nochmal
Okay.
test Test = test(); delete &Test;
Sowas geht nicht, da Test auf dem Stack angelegt wurde und nur Gültigkeit im aktuellen Block (in Deinem Fall die main-Funktion) hat. Wenn Du explizit auf die Laufzeit Einfluss nehmen möchtest, kannst Du das nur über eine saubere new/delete Kombination machen. Es ist auch ein guter Stil, nach dem delete den Pointer(!) zu 0 zu setzen. Wenn Du danach (also Pointer ist Null) auf eine Memberfunktion zugreifst,
Test = NULL; delete Test; // hat keine Auswirkung, da Test==0 cout << "noch ist es nicht zu ende\n"; Test->say("fehler\n");
kannst Du Dich nur auf indifferentes Verhalten verlassen. In Deinem Fall funktionierte es, wahrscheinlich weil Du auch keine Variablen in der Klasse hast, die Speicher benötigen. Mit 'richtigen' Klassen sollte der Seg. Fault die Regel sein. Sowas also nie machen! Grüße Alex