Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

New(pt1); New(pt2); Mark(M1);



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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...