an diesem Code suchen BitteLöschen eines Zeigers auf eine automatische Variable
int i = 10; //line 1
int *p = &i; //line 2
delete p; //line 3
cout << "*p = " << *p << ", i = " << i << endl; //line 4
i = 20; //line 5
cout << "*p = " << *p << ", i = " << i << endl; //line 6
*p = 30; //line 7
cout << "*p = " << *p << ", i = " << i << endl; //line 8
Was das Ergebnis dieses Codes ist? Vor allem von Zeile 3, 5 und 7? Rufen sie unbestimmtes Verhalten auf? Was wäre die Ausgabe?
EDIT: Ich habe versucht, es mit g ++, und es ist kompilieren und läuft gut! Ich verwende MinGW unter Windows 7.
Was sagt Standard in diesem Zusammenhang?
haben Sie versucht, es auszuführen? Vielleicht kannst du das Ergebnis deines Laufs hinzufügen und wir können es dann diskutieren? – Nim
Warum nicht kompilieren und sehen? Ich bekomme einen segfault ... – Kricket
'*** Fehler für Objekt 0x7fff5fbff5ec: Zeiger freigelassen wurde nicht zugeordnet *** setzen Sie einen Breakpoint in malloc_error_break zu debuggen, während es ausgeführt wird ... mit g ++ 4.1 in MacOS X kompiliert Meine Definition von "Laufen" läuft nicht gut. –