![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
ОПЕРАЦИЯ ПРИСВАИВАНИЯ ДОПУСТИМА
Ø для двух однотипных указателей
Ø пары: типизированный и нетипизированный указатели.
Ø другие присваивания не допустимы!
ОПЕРАЦИИ С УКАЗАТЕЛЯМИ
Ø операция взятия адреса @
- возвращает адрес памяти, в которой размещен объект-операнд;
Ø операция разадресации ^
- возвращает объект, адрес которого содержится в указателе;
Ø операция =
- возвращает результат сравнения двух указателей на равенство (два указателя равны, если они хранят адрес одной и той же ячейки памяти или оба равны 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; Прочитано: 344 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!