Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
New(pt3); New(pt4); Mark(M2);
New(pt5); New(pt6); New(pt7);
Release(M2);
Release(M1);
Release(Heaporg);
Операторы Mark и Release удобны для программ, в которых порядок освобождения полей обратный порядку их выделения. Не рекомендуется одновременно использовать Release и Dispose, FreeMem.
MAXAVAIL: longint – возвращает размер (в байтах) наибольшего непрерывного участка кучи. За один вызов NEW или GETMEM нельзя зарезервировать памяти больше, чем значение, возвращаемое этой функцией.
MEMAVAIL: longint – возвращает размер общего свободного пространства кучи.
Примеры использования указателей
Объявление
При объявлении переменной типа «указатель» выделяются лишь ячейки памяти для хранения собственно указателей. В начале работы программы эти ячейки пусты, конкретных адресов в них нет.
П р и м е р ы объявлений:
Type ip = ^integer;
A = array[1..5] of byte;
Var x, y: ip;
B: ^byte;
R: ^real;
Pa: ^A;
p, q: pointer;
Type preco = ^struct;
Struct=record
C:char;
n:integer;
End;
Var Pr:preco;
Выделение памяти
В результате выполнения процедур New и Getmem в ячейки переменных-указателей записываются адреса, по которым будут располагаться данные соответствующих типов, и выделяется память по указанным адресам для хранения объектов, на которые ссылаются указатели:
New(x); New(y); New(B); New(R); New(Pa); New(Pr);
Дата публикования: 2014-10-25; Прочитано: 287 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!