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

Действия с указателями



ОПЕРАЦИЯ ПРИСВАИВАНИЯ ДОПУСТИМА

Ø для двух однотипных указателей

Ø пары: типизированный и нетипизированный указатели.

Ø другие присваивания не допустимы!

ОПЕРАЦИИ С УКАЗАТЕЛЯМИ

Ø операция взятия адреса @

- возвращает адрес памяти, в которой размещен объект-операнд;

Ø операция разадресации ^

- возвращает объект, адрес которого содержится в указателе;

Ø операция =

- возвращает результат сравнения двух указателей на равенство (два указателя равны, если они хранят адрес одной и той же ячейки памяти или оба равны NIL);

Ø операция <>

- возвращает результат сравнения двух указателей на неравенство.

Других операций сравнения указателей нет.

NIL

- обозначает пустой или нулевой указатель (но это не ноль в прямом смысле).

- единственная константа-указатель!

- можно присваивать любому (типизированному или нетипизированному) указателю.

ФУНКЦИИ РАБОТЫ С УКАЗАТЕЛЯМИ

Ø ADDR(X) /@X/

- возвращает адрес памяти, в которой размещен X (тип POINTER)

Ø PTR(S,C)

- возвращает указатель (тип POINTER), построенный по сегменту S и смещению C

Ø OFS(X)

- возвращает смещение адреса указанного объекта X (тип WORD)

Ø SEG(X)

- возвращает сегмент адреса указанного объекта X (тип WORD)

Ø MAXAVAIL

- возвращает размер в байтах наибольшего непрерывного участка кучи

Ø MEMAVAIL

- возвращает размер в байтах общего свободного пространства кучи

Ø SIZEOF(X)

- возвращает длину в байтах внутреннего представления объекта X

Ø DSEG

- возвращает значение, хранящееся в регистре DS, т.е. адрес сегмента данных программы

Ø CSEG

- возвращает значение, хранящееся в регистре CS, т.е. адрес начала кода программы

13.1.3. Структура оперативной памяти и компоненты динамической памяти

ВЫДЕЛЕНИЕ И ОСВОБОЖДЕНИЕ ДИНАМИЧЕСКОЙ ПАМЯТИ

Ø NEW()

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

Ø DISPOSE(P)

- возвращает память, выделенную под P в кучу. при этом содержимое p не изменится. Во избежание ошибок желательно добавлять P:=NIL.

Ø MARK(P)

- запоминает в p текущее значение HeapPtr.

Ø REALSE(P)

- возвращает в кучу фрагмент памяти, начиная от P до конца кучи.

Ø GETMEM(P,SIZE)

- резервирует память из кучи объемом SIZE, адрес начала блока помещается в P.

Ø FREEMEM(P,SIZE)

- освобождает (возвращает в кучу) блок памяти объемом SIZE, начиная с P.





Дата публикования: 2015-02-22; Прочитано: 329 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



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