Paauliinkaaa
Delete (z ang. skasuj) - w C++ 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.
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 do 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.
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.
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 do 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.