Junior — Middle
141
C++-da yaddaşın azad olunmasında delete və delete[] operatorları arasındakı fərq nədir?
AI-dan cavab
sobes.tech Süni İntellekt
В C++ оператор delete используется для освобождения памяти, выделенной под один объект, а оператор delete[] — для освобождения памяти, выделенной под массив объектов.
Основные различия:
deleteвызывает деструктор для одного объекта и освобождает память.delete[]вызывает деструкторы для всех элементов массива и затем освобождает память.
Если использовать delete для массива, то вызовется деструктор только для первого элемента, что может привести к утечкам ресурсов или неправильному поведению.
Пример:
int* p = new int[5];
// ...
delete[] p; // правильно
int* q = new int;
// ...
delete q; // правильно
Всегда нужно использовать соответствующий оператор для корректного освобождения памяти.