Delete
Z Wikipedii
delete (z ang. skasuj) - w programowaniu obiektowym operator niszczący obiekty utworzone za pomocą operatora new (bądź dowolny obiekt, którego adres można pobrać).
Wywołanie delete [] wskaznik spowoduje usunięcie tablicy obiektów pokazywanych wskaznikiem wskaznik. Nie jest konieczne podawanie rozmiaru tablicy usuwanych obiektów, gdyż (zależnie od systemu operacyjnego, kompilatora itp) jest on pamiętany w specjalnej tablicy alokacji, która zawiera zakresy alokowanych przedziałów pamięci.
[edytuj] Przykład w języku C++
int* wsk; wsk = new int; delete wsk; // zniszczenie obiektu poprzez wymazanie obszaru pamięci, // na jaki pokazuje wsk const int iloscElementow = 20; int* tab; tab = new int[ iloscElementow ]; delete [] tab; // zniszczenie tablicy obiektów pokazywanych przez tab
Należy zwrócić szczególną uwagę na poprawność użycia operatora delete. Wiele trudnych do wykrycia błędów w programach jest skutkiem użycia delete[] na wskaźniku do pojedynczego obiektu lub samego delete na wskaźniku to tablicy obiektów.
Innym, często spotykanym błędem, jest dwukrotne wywołanie delete na tym samym wskaźniku. Dlatego dobrym zwyczajem jest przypisanie wartości NULL zmiennej zaraz po zwolnieniu pamięci przez nią wskazywanej. Wykonanie delete na wartości NULL nie powoduje żadnego skutku i jest bezpieczne.
[edytuj] Uwaga
Wśród Polaków rozpowszechniona jest błędna wymowa słowa delete. Prawidłowa wymowa to [dilit].