Sobes.tech
Junior — Middle
133

Care este diferența dintre operatorul delete și operatorul delete[] la eliberarea memoriei în C++?

Răspuns de la AI

sobes.tech AI

В C++ оператор delete используется для освобождения памяти, выделенной под один объект, а оператор delete[] — для освобождения памяти, выделенной под массив объектов.

Основные различия:

  • delete вызывает деструктор для одного объекта и освобождает память.
  • delete[] вызывает деструкторы для всех элементов массива и затем освобождает память.

Если использовать delete для массива, то вызовется деструктор только для первого элемента, что может привести к утечкам ресурсов или неправильному поведению.

Пример:

int* p = new int[5];
// ...
delete[] p; // правильно

int* q = new int;
// ...
delete q; // правильно

Всегда нужно использовать соответствующий оператор для корректного освобождения памяти.