Динамический массив – это массив, память для которого выделяется во время работы программы.
Синтаксис объявления динамического массива:
<имя массива>: а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.
ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ КОНСТРУИРОВАНИЕ ПРОГРАММ