Middle
Jakie są dwa typy operatora delete w C++?
sobes.tech AI
Odpowiedź od AI
- Zwykły operator
delete: służy do zwalniania pamięci przydzielonej dla pojedynczego obiektu za pomocą operatoranew. - Operator
delete[]: służy do zwalniania pamięci przydzielonej dla tablicy obiektów za pomocą operatoranew[]. Przy użyciudelete[]wywoływane są destruktory wszystkich elementów tablicy w odwrotnej kolejności ich tworzenia.
Użycie niewłaściwego typu operatora delete (np. delete dla tablicy lub delete[] dla pojedynczego obiektu) prowadzi do nieokreślonego zachowania.
Przykład:
// Zwykły operator delete
int* pojedynczy_obiekt = new int(10);
// ... użycie pojedynczego_obiektu
delete pojedynczy_obiekt;
// Operator delete[] dla tablicy
int* tablica_obiektów = new int[5];
// ... użycie tablica_obiektów
delete[] tablica_obiektów;