Freigeben über


delete-Operator (C++)

Gibt einen Speicherblock frei.

[::] delete cast-expression
[::] delete [ ] cast-expression

Hinweise

Das Umwandlungsausdrucks-Argument muss ein Zeiger auf einen Speicherblock sein, der bereits für ein Objekt zugeordnet ist, das neuer Operatorerstellt wird.Der Operator delete weist ein Ergebnis vom Typ void und daher gibt keinen Wert zurück.Beispiele:

CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;

Verwenden delete auf einen Zeiger auf ein Objekt, das nicht zugeordnet ist, gibt neu zu unvorhersehbaren Ergebnissen führen.Sie können delete auf einem Zeiger jedoch mit dem Wert 0.Diese Bereitstellung bedeutet die bei neu 0 auf Fehler zurückgibt und löscht das Ergebnis eines fehlgeschlagenen Vorgangs neu ist harmlos.Weitere Informationen finden Sie unter Das neue und delet-Operatoren .

neu und die delet-Operatoren können für integrierte Datentypen, einschließlich Arrays verwendet werden.Wenn pointer ein Array verweist, leere Klammern des Platzes pointervor:

int* set = new int[100];
//use set[]
delete [] set;

Verwenden des delet-Operators für ein Objekt gibt den Arbeitsspeicher frei.Ein Programm, das einen Zeiger dereferenziert, wenn das Objekt gelöscht wurde, kann unvorhersehbare Ergebnisse haben oder abstürzen.

Wenn delete verwendet wird, um Speicher für Klassenobjekt Ein C++-Compiler freizugeben, wird der Destruktor des Objekts aufgerufen, bevor der Speicher des Objekts freigegeben wird (wenn das Objekt einen Destruktor hat).

Wenn der Operand für den Operator delete ein veränderlicher l-Wert handelt, wird ihr Wert nicht definiert, nachdem das Objekt gelöscht wird.

Beispiel

Beispiele zur Verwendung von deletefinden Sie unter neuer Operator.

Siehe auch

Referenz

Ausdrücke mit unären Operatoren

C++-Schlüsselwörter

Wie funktioniert löschen

Verwenden der Löschvorgang

neu und delet-Operatoren

Operator-Funktion