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