Delete (C++)
В языке программирования C++ оператор delete возвращает память, выделенную оператором new, обратно в кучу. Вызов delete должен происходить для каждого вызова new, дабы избежать утечки памяти. После вызова delete объект, указывающий на этот участок памяти, становится некорректным и не должен больше использоваться. Многие программисты присваивают 0 (нуль-указатель) указателям после использования delete, чтобы минимизировать количество ошибок программирования. Однако нужно отметить, что удаление нуль-указателя фактически не имеет эффекта, так что нет необходимости проверять нуль-указатель перед вызовом delete.
Фрагмент кода в качестве примера: <source lang="cpp"> int *p_var = 0; // объявление нового указателя p_var = new int; // память динамически выделяется
/* ....... остальной код ........*/
delete p_var; // память освобождается
p_var = 0; // указатель заменяется на 0 (нуль-указатель)
</source>
Массивы, созданные (выделенные) при помощи new [], аналогичным образом могут быть уничтожены (совобождены) при помощи delete []:
<source lang="cpp">
int size = 10;
int *p_var = 0; // объявление нового указателя
p_var = new int [size];// память динамически выделяется
/* ....... остальной код ........*/
delete [] p_var; // память освобождается p_var = 0; // указатель заменяется на 0 (нуль-указатель) </source>
См. также
Ссылки
- Описание оператора delete в документации от IBM (англ.)
- Описание оператора delete применительно к Microsoft Visual Studio (англ.)
| Программирование | Это незавершённая статья о программировании. Вы можете помочь проекту, исправив и дополнив её. |
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....