1.Любым действиям с динамической переменной должна предшествовать процедура ее размещения в ОЗУ. Эта процедура имеет вид: New (Var p: Pointer). Она создает новую динамическую переменную, присваивая указателю p значение ее адреса в ОЗУ. При этом динамической переменной отводится блок памяти, соответствующий размеру типа, с которым объявлен указатель p.
2.Когда в ходе вычислительного процесса переменная становится ненужной, ее следует удалить. Это осуществляется процедурой Dispose (Var p: Pointer). Данная процедура освобождает память, занятую динамической переменной, делая значение ее указателя неопределенным.
3.Процедура GetMem (Var p: Pointer, Size: Word), где Word - 2 байта (целые числа от 0 до 65535), создает новую динамическую переменную размером Size байт, устанавливая значения указателя на начало выделяемой ей динамической области оперативной памяти.
4.ПроцедураFreeMem (Var p: Pointer, Size: Word) уничтожает динамическую переменную, освобождая Size байт. После выполнения процедуры FreeMem значение p становится неопределенным.
5.ПроцедураMark (Var p: Pointer)записывает в указатель p адрес начала участка свободной динамической памяти на момент ее вызова.
6.ПроцедураRealease (Var p: Pointer)освобождает участок динамической памяти, начиная с адреса, записанного в указатель p процедурой Mark, т.е. очищает ту динамическую память, которая была занята после вызова процедуры Mark.
Функции:
1. MaxAvail: LongInt – возвращает длину в байтах самого длинного свободного участка динамической памяти.
2. MemAvail: LongInt –возвращает размер свободной области динамической памяти (в байтах).
3. Addr(X): Pointer –возвращает адрес объекта, где X - любая переменная, имя процедуры или функции.
4. SizeOf(X): Wordвозвращает объем в байтах, занимаемый X, причем X может быть либо именем переменной любого типа, либо именем типа.