Function User_func():integer;far

Для того чтобы в программе вместо стандартной функции монитора кучи работала пользовательская необходимо адрес пользовательской функции записать в системную переменную HEAPerror.

Begin

HEAPerror:=@user_func;

Пример: требуется выделить два блока памяти для хранения информации размеров в 1 байт и поместить в их некоторые значения. Если под какой либо один или оба блока не хватает памяти то очистить память и завершить выполнение программы.

Программа:

Var

X,y:^byte;

P:pointer;

{$f+}

Function User_f(size:word):integer;

Begin

User_func:=1;

End;

{$f-}

Begin

Mark(p);

Heaperror:=@user_f;

.

.

New(x); new(y);

If y=nil then

Begin

Write(‘’);

Readkey;

Release(p);

Exit;

End;

X^:=3;

Y^:=1;

Release(p);

End.

Лекция № 10

Ссылочный и указательный типы данных. Линейные динамические списки. Определение узла списка. Организация динамических списков типа FIFO, LIFO. Основные операции над списками: добавление узла, вставка узла, удаление узла, просмотр узлов списка. Удаление списка.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: