При выполнении программы наступает момент, когда необходимо использовать динамическую память, т.е. выделить её в нужных видах, разместить там какие-то данные, поработать с ними, а после того, как в данных отпадет необходимость - освободить выделенную память.
Динамическая память может быть выделена двумя способами:
1. С помощью стандартной процедуры New (P); где Р- переменная типа «типизированный указатель». Эта процедура создает новую динамическую переменную (выделяет под нее участок памяти) и устанавливает на нее указатель P(в P записывается адрес выделенного участка памяти). Размер и структура выделяемого участка памяти задается размером памяти для того типа данных, с которым связан указатель P. Доступ к значению созданной переменной можно получить с помощью P^.
2. С помощью стандартной процедуры GetMem (P,size); где P- переменная типа «указатель» требуемого типа; size- целочисленное выражение размера запрашиваемой памяти в байтах.
Эта процедура создает новую динамическую переменную требуемого размера и свойства, а также помещает адрес этой созданной переменной в переменную Ртипа «указатель». Доступ к значению созданной переменной можно получить с помощью P^.
Например:
TYPE REC =RECORD
FIELD1:STRING[30];
FIELD2:INTEGER;