11.5. Процедуры управления кучей

Управление кучей осуществляет монитор кучи, являющийся частью системной библиотеки Турбо Паскаля. Он реализует следу-

- 200 -

ющие процедуры и функции (табл. 11.1), размещающие и удаляющие динамические переменные из кучи и анализирующие ее состояние.

Таблица 11.1

Процедуры и функции

Назначение

New (VAR P : Pointer)

Отводит место для хранения динамической переменной P^ и присваивает ее адрес ссылке P

Dispose (VAR P : Pointer)

Уничтожает связь, созданную ранее New, между ссылкой P и значением, на которое она ссылалась

GetMem (VAR P : Pointer; Size : Word)

Отводит место в Size байт в куче, присваивая адрес его начала указателю (ссылке) P

FreeMem (VAR P : Pointer; Size : Word)

Освобождает Size байт в куче, начиная с адреса, записанного в указателе (ссылке) P

Mark (VAR P : Pointer)

Запоминает в указателе P текущее состояние кучи

Release (VAR P : Pointer)

Возвращает кучу в состояние, запомненное ранее в P вызовом процедуры Mark(P)

New (ТипСсылки) : Pointer

Альтернативная форма создания динамической переменной P^ типа заданного базового типа

MaxAvail : LongInt

Возвращает длину (в байтах) самого длинного свободного участка памяти в куче

MemAvail : LongInt

Возвращает сумму длин всех свободных участков памяти (в байтах)

Размещение динамических переменных.