На языке программирования С++ оператор delete вызывает деструктор данного аргумента и возвращает память, выделенную новой, обратно в кучу.

Вызов delete должен выполняться для каждого вызова new, чтобы избежать утечки памяти. После вызова delete указанный объект памяти указан неверно и больше не должен использоваться. Многие программисты назначают 0 (нулевой указатель) указателям после использования delete, чтобы минимизировать ошибки программирования.

Обратите внимание, однако, что удаление нулевого указателя не имеет эффекта (если функция освобождения включена в стандартную библиотеку), поэтому нет необходимости проверять нулевой указатель перед вызовом delete.

Массивы, выделенные с помощью new[], должны быть освобождены с помощью delete[].