delete (C++)

delete (C++)

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

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

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

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

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

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

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "delete (C++)" в других словарях:

  • Delete (C++) — В языке программирования C++ оператор delete возвращает память, выделенную оператором new, обратно в кучу. Вызов delete должен происходить для каждого вызова new, дабы избежать утечки памяти. После вызова delete объект, указывающий на этот… …   Википедия

  • delete — de‧lete [dɪˈliːt] verb [transitive] 1. to remove something written on a list, in a document etc: • Libelous remarks about living people have been deleted from the document. • The company will be deleted from the S & P 500 Index. 2. COMPUTING to… …   Financial and business terms

  • DELETE — DELETE  в языках, подобных SQL, DML операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением where. В случае, если критерий отбора не определён, выполняется удаление всех записей. В СУБД,… …   Википедия

  • Delete — Delete: Delete оператор языка программирования C++. Delete операция в языках, подобных SQL. Delete клавиша на клавиатуре компьютера …   Википедия

  • Delete — De*lete , v. t. [imp. & p. p. {Deleted}; p. pr. & vb. n. {Deleting}.] [L. deletus, p. p. of delere to destroy. Cf. 1st {Dele}.] To blot out; to erase; to expunge; to dele; to omit. [1913 Webster] I have, therefore, . . . inserted eleven stanzas… …   The Collaborative International Dictionary of English

  • delete — I verb blot out, cancel, censor, cross off, cross out, cut, cut out, dele, discard, do away with, drop, edit out, efface, elide, eliminate, eradicate, erase, excise, expel, expunge, extirpate, get rid of, leave out, modify by excisions,… …   Law dictionary

  • delete — (v.) late 15c., destroy, eradicate, from L. deletus, pp. of delere destroy, blot out, efface, from delevi, originally perf. tense of delinere to daub, erase by smudging (as of the wax on a writing table), from de from, away (see DE (Cf. de )) +… …   Etymology dictionary

  • delete — (izg. dilȋt) m DEFINICIJA inform. tipka na tipkovnici koja služi za brisanje znaka na kojem se nalazi kursor, usp. backspace ETIMOLOGIJA engl.: brisati …   Hrvatski jezični portal

  • delete — cancel, efface, obliterate, blot out, expunge, *erase Analogous words: eliminate, *exclude, rule out: omit (see NEGLECT vb) …   New Dictionary of Synonyms

  • delete — [v] erase, remove annul, black out, bleep, blot out, blue pencil*, cancel, clean, clean up, cross out, cut, cut out, decontaminate, destroy, drop, edit, efface, eliminate, exclude, expunge, obliterate, omit, pass up, rub, rub out, rule out,… …   New thesaurus

  • delete — ► VERB ▪ remove or erase (text). DERIVATIVES deletion noun. ORIGIN Latin delere to blot out …   English terms dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»