Освобождение памяти, выделенной под двумерный динамический массив
Удаление из динамической памяти двумерного массива осуществляется в порядке, обратном его созданию, то есть сначала освобождается память, выделенная под одномерные массивы с данными, а затем память, выделенная под одномерные массив указателей.
Освобождение памяти, выделенной под двумерный динамический массив, также осуществляется 2 способами.
1) при помощи операции delete, которая освобождает участок памяти ранее выделенной операцией new.
Синтаксис освобождения памяти, выделенной для массива значений:
delete ИмяМассива [ЗначениеИндекса];
Синтаксис освобождения памяти, выделенной под массив указателей:
delete [] ИмяМассива;
ИмяМассива – идентификатор массива, то есть имя двойного указателя для выделяемого блока памяти.
Например:
for (int i=0; i<n; i++)
delete matr [i];
//освобождает память, выделенную для массива значений
delete [] matr;
//освобождает память, выделенную под массив указателей
Квадратные скобки [] означают, что освободить память, занятую всеми элементами массива, а не только первый.
2) при помощи библиотечной функции free, которая предназначена для освобождения динамической памяти.
Синтаксис освобождения памяти, выделенной для массива значений:
free (ИмяМассива[ЗначениеИндекса]);
Синтаксис освобождения памяти, выделенной под массив указателей:
free (ИмяМассива);
ИмяМассива – идентификатор массива, то есть имя двойного указателя для выделяемого блока памяти.
Например:
for (int i=0; i<n; i++)
free (matr[i]);
//освобождает память, выделенную для массива значений
free (matr);
//освобождает память, выделенную под массив указателей
Дата добавления: 2015-02-16; просмотров: 1952;