Динамическое выделение и освобождение памяти.

В процессе работы программы автоматически выделяется место в памяти для всех ее объектов. Как будет показано ниже, иногда требуется явно указать момент выделения памяти для некоторых объектов и размер выделяемой под них памяти.

Динамическое (т.е. осуществляемое в процессе работы программы) выделение памяти означает:

1) поиск свободного (т.е. не занятого пока никаким объектом) участка памяти требуемого размера;

2) объявление его занятым (чтобы никакая последующая операция выделения памяти не назначила его другому объекту);

3) присваивание его адреса какому-либо указателю, через который в дальнейшем будет осуществляться работа с этим участком.

Динамическое выделение памяти называется также ее захватом.

Если в процессе работы динамически выделенная память оказывается больше не нужной, рекомендуется ее освободить, т.е. объявить доступной для других возможных операций выделения памяти. При завершении работы программы вся выделенная ей память освобождается автоматически.

 

Для работы с динамической памятью в С++ введены две операции:

захват памяти - new,

освобождение захваченной ранее памяти - delete.