Sobes.tech
Junior

Co się stanie, jeśli wywołasz operator delete dla nullptr?

sobes.tech AI

Odpowiedź od AI

Nic się nie stanie. Wywołanie operatora delete dla nullptr nie powoduje błędu ani nieokreślonego zachowania. Standard C++ wyraźnie to gwarantuje.

int* p = nullptr;
delete p; // Bezpieczne, nic się nie dzieje.

int* q = new int(10);
delete q; // Zwolnienie przydzielonej pamięci.
delete q; // Nieokrecone zachowanie (podwójne usunięcie).

int* r = new int[5];
delete[] r; // Zwolnienie tablicy.