Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
...
Вторая функция:
MemAvail;
Эта функция возвращает общее число свободных байтов динамической памяти, то есть суммируются размеры всех свободных участков и объем свободной динамической области. Тип возвращаемого значения - longint.
...
Writeln(' Доступно ', MemAvail, ' байтов ');
Writeln( 'Наибольший свободный участок= ', MaxAvail, ' байтов' );
...
Это решение основано на следующем обстоятельстве. Динамическая область размещается в специально выделяемой области, которая носит название «куча» (heap). Куча занимает всю или часть свободной памяти, оставшейся после загрузки программы. Размер кучи можно установить с помощью директивы компилятора М:
{$М <стек>, <минимум кучи>, <максимум кучи> }
где <стек > - специфицирует размер сегмента стека в байтах. По умолчанию размер стека 16 384 байт, а максимальный размер стека 65 538 байт;
< минимум кучи > - специфицирует минимально требуемый размер кучи в байтах; по умолчанию минимальный размер 0 байт;
< максимум кучи > - специфицирует максимальное значение памяти в байтах для размещения кучи; по умолчанию оно равно 655 360 байт, что в большинстве случаев выделяет в куче всю доступную память; это значение должно быть не меньше наименьшего размера кучи.
Все значения задаются в десятичной или шестнадцатеричной формах. Например, следующие две директивы эквивалентны:
{$М 16384,0,655360}
{$M $4000, $0, $A000}
Если указанный минимальный объем памяти недоступен, то программа выполняться не будет.
Управление размещением в динамической памяти осуществляет администратор кучи, являющийся одной из управляющих программ модуля System.
Дата публикования: 2014-11-04; Прочитано: 379 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!