Delete (C++)

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

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

Фрагмент кода в качестве примера:

int *p_var = 0;     // объявление нового указателя
p_var = new int;       // память динамически выделяется
 
/* .......
остальной код
........*/
 
delete p_var;          // память освобождается
p_var = 0;          // указатель заменяется на 0 (нуль-указатель)

Массивы, созданные (выделенные) при помощи new [], аналогичным образом могут быть уничтожены (совобождены) при помощи delete []:

int size = 10;
int *p_var = 0;     // объявление нового указателя
p_var = new int [size];// память динамически выделяется
 
/* .......
остальной код
........*/
 
delete [] p_var;       // память освобождается
p_var = 0;          // указатель заменяется на 0 (нуль-указатель)

См. также

Ссылки


Личные инструменты

Served in 0.076 secs.