
Давайте посмотрим, как можно использовать динамическую память для хранения больших массивов данных.
Пример 23
type
DynArray = [1..2] of real;
var
A : ^DinArray;
n, i : word;
BEGIN
write('Укажите размер массива:');
readln(n);
GetMem(A,n*6);
. . .
{$R-}
for i:=1 to n do
A[i]:=random;
. . . {любые действия с элементами масссива}
{$R+}
FreeMem(A,n*6)
END.
Обратите внимание на директивы компилятора. Они используются для временного отключения проверки значения индекса массива. Количество выделяемой памяти должно быть равно произведению количества элементов массива на количество байт, отводимое под один элемент (в данном случае – под тип real отводится 6 байт).
Вся динамическая память в Турбо-Паскале рассматривается как сплошной массив байтов, называемый кучей (heap). Адрес начала кучи хранится в стандартной переменной HeapOrg, конец – в переменной HeapEnd. На начало незанятого участка динамической памяти указывает переменная-указатель HeapPtr.

Комментарии
Комментариев пока нет - будьте первым.