РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
653 of 815 menu

Оператор delete

Оператор delete освобождает память, которая была ранее выделена с помощью оператора new. Перед освобождением памяти для объекта вызывается его деструктор. Оператор принимает указатель на объект, память под который нужно освободить. Для освобождения массивов используется отдельная форма delete[].

Синтаксис

delete pointer; delete[] array_pointer;

Пример

Давайте выделим память под одно целое число с помощью оператора new, запишем в него значение и затем освободим память оператором delete:

#include <iostream> using namespace std; int main() { int* ptr = new int(42); cout << *ptr << endl; delete ptr; return 0; }

Результат выполнения кода:

42

Пример

Давайте создадим объект класса, а затем освободим память. Обратите внимание, что при вызове delete автоматически вызывается деструктор:

#include <iostream> using namespace std; class Test { public: Test() { cout << "Constructor" << endl; } ~Test() { cout << "Destructor" << endl; } }; int main() { Test* ptr = new Test(); delete ptr; return 0; }

Результат выполнения кода:

"Constructor" "Destructor"

Пример

Для освобождения памяти, выделенной под массив, нужно использовать форму delete[]. Давайте выделим массив из 5 элементов и освободим его:

#include <iostream> using namespace std; int main() { int* arr = new int[5]{1, 2, 3, 4, 5}; for (int i = 0; i < 5; i++) { cout << arr[i] << " "; } cout << endl; delete[] arr; return 0; }

Результат выполнения кода:

1 2 3 4 5

Смотрите также

  • оператор new,
    который выделяет память под объект
  • оператор new[],
    который выделяет память под массив
  • оператор delete[],
    который освобождает память массива
  • концепция RAII,
    которая управляет ресурсами через объекты
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить