delete — Operator (C++)
Zwalnia blok pamięci.
[::] delete cast-expression
[::] delete [ ] cast-expression
Uwagi
Argument cast-expression musi być wskaźnikiem do bloku pamięci poprzednio przydzielonego do obiektu utworzonego z operatorem new.Operator delete ma wynik typu void i dlatego nie zwraca wartości.Na przykład:
CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;
Użycie delete na wskaźniku do obiektu nie przydzielonego do new daje nieprzewidywalne wyniki.Można jednak używać delete na wskaźniku o wartości 0.Zastrzeżenie to oznacza, że gdy new zwraca 0 w przypadku niepowodzenia, usunięcie wyniku nieudanej operacji new jest nieszkodliwe.Zobacz Operatory new i delete, aby uzyskać więcej informacji.
Operatory new i delete mogą być używane również do wbudowanych typów, włącznie z tablicami.Jeśli pointer odwołuje się do tablicy, należy umieścić puste nawiasy przed pointer:
int* set = new int[100];
//use set[]
delete [] set;
Użycie operatora delete na obiekcie zwalnia jego pamięć.Program, który usuwa odwołanie do wskaźnika po usunięciu obiektu, może mieć nieprzewidywalne wyniki lub awarie.
Gdy używane jest delete, aby zwolnić pamięć dla obiektu klasy języka C++, destruktor obiektu jest wywoływany przed zwolnieniem pamięci obiektu (jeśli obiekt ma destruktor).
Jeśli argument operacji operatora delete jest modyfikowalną l-wartością, jej wartość jest niezdefiniowana po usunięciu obiektu.
Przykład
Aby zobaczyć przykłady użycia delete, zobacz operator new.
Zobacz też
Informacje
Wyrażenia z operatorami jednoargumentowymi