char* variable löschen.
-
versuche vergeblich eine char* variable zu reinigen.
char *temp = "Hallo"; delete(temp); delete[]temp; MessageBoxA(0,temp,"Inhalt der TEMP-Variable",0);beim starten erfährt man, dass der selbe string wie vorher in 'temp' steht.
wieso?
hab ich den nich mit 'delete' endgültig gelöscht?
habt ihr andere vorschläge die gehen?
MfG ReVesTeR
-
delete sollte nur auf Variablen angewandt werden, die mit new erzeugt wurden !
char *temp = "Hallo";
legt den String NICHT im Heap ab ! Kann alseo auch nicht deletet werden.UND: nach delte zeigt der Zeiger immer noch auf dieselbe Stelle im RAM.
Du kannst
temp=NULL;
machen, dann zeigt das nirgendwo mehr hin.!!!
Mach das aber NIE mit Variablen, die mit new erzeugt wurden, BEVOR die mit
delete gelöscht wurden.
!!!
-
danke

-
Hallo
Noch ein paar Hinweise : delete gibt (wenn wies chon gesagt auf mit new angelegte Instanzen angewendet) ausschließlich den Speicher wieder zur neuen Verwendung wieder frei, überschreibt aber diesen Speicher nicht. Die eigentlichen Bytes im Speicher bleiben also unversehrt, weshalb der Zugriff danach noch funktionieren kann. Aber das ist dann ein ungültiger Zugriff auch wenn zur Laufzeit keine Fehlermeldung auftritt.
bis bald
akari