delete – operátor (C++)

Zruší přidělení bloku paměti.

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

Poznámky

Je nutné, aby argument cast-expression byl ukazatel na blok paměti dříve přidělené pro objekt vytvořený pomocí operátoru new.Operátor delete má výsledek typu void a proto nevrátí žádnou hodnotu.Příklad:

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

Použití delete na ukazatel objektu, který nebyl přidělen pomocí new, poskytuje neočekávané výsledky.Je však možné použít delete na ukazatel s hodnotou 0.Toto zajištění znamená, že pokud new vrátí při selhání hodnotu 0, je odstranění výsledku nezdařené operace new neškodné.Další informace naleznete v tématu Operátory new a delete.

Operátory new a delete lze také použít pro vestavěné typy, včetně polí.Pokud pointer odkazuje na pole, je třeba před pointer umístit prázdné závorky:

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

Použití operátoru delete na objekt, zruší přidělení paměti.Program, který přistoupí přes ukazatel po odstranění objektu, může mít nepředvídatelné výsledky nebo se zhroutit.

Při použití delete k zrušení přidělení paměti pro objekt třídy jazyka C++, je před zrušením přidělení paměti objektu zavolán destruktor objektu (pokud má objekt destruktor).

Je-li operand operátoru delete modifikovatelná l-hodnota, je jeho hodnota po odstranění objektu nedefinovaná.

Příklad

Příklady použití delete, viz Operátor new.

Viz také

Referenční dokumentace

Výrazy s unárními operátory

Klíčová slova jazyka C++

Jak funguje výraz delete

Používání příkazu delete

Operátory new a delete

operator delete – funkce