Динамические массивы

Динамический массив – это массив, память для которого выделяется во время работы программы.

Синтаксис объявления динамического массива:

<имя массива> : аrray of <тип элементов>;

Индекс динамического массива всегда начинается с 0 !

Имя динамического массива– это указатель, который не требует разыменования (символа ^) для доступа к данным. Например, FArray [2].

Оператор присваивания для имен динамических массивов означает присваивание указателей!

 

Выделение памяти для динамического массива осуществляется процедурой SetLength (<имя массива>, <количество элементов>),освобождение памяти процедурой Finalize (<имя массива>).

Пример:

Var

FArray: array of integer;

. . .

Begin

SetLength (FArray, 10); {выделяем память для 10 элементов массива}

. . . {что-то делаем с массивом }

{не хватило элементов массива?}

SetLength (FArray, Length(FArray) + 10);{добавим еще 10 элементов }

. . . { делаем с массивом что-то еще }

Finalize (FArray); {освобождаем память }

End.

Использование многомерных динамических массивом рассмотрим на примере "матрицы", которая имеет различное количество элементов в каждой строке.

Пример многомерного динамического массива:

Var

FArray: array of array of integer;

Begin

SetLength (FArray, 10); {память для 10 строк }

. . .

SetLength (FArray[0], 5); { память для 5 элементов первой строки }

SetLength (FArray[1], 4); { память для 4 элементов второй строки }

SetLength (FArray[2], 6); { память для 6 элементов третьей строки }

. . . { Например, FArray[1, 3] – четвертый элемент второй строки }

Finalize (FArray); {освобождаем память, выделенную для массива }

End.


ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ КОНСТРУИРОВАНИЕ ПРОГРАММ