Динамические переменные — размещаются в памяти непосредственно в процессе работы программы. При динамическом размещении заранее неизвестны ни тип, ни количество размещаемых данных, к ним нельзя обращаться по именам, как к статическим переменным.
Память под динамическую величину, связанную с указателем, выделяется в результате выполнения стандартной процедуры NEW(< указатель >);
после выполнения этого оператора создана динамическая величина, имя которой имеет следующий вид: < имя динамической величины > := < указатель >
NEW(P1); NEW(P2); NEW(Pm); После их выполненияP1^, P2^, Pm^ ; P1^ динамическая переменная, на которую ссылается указатель P1.
Следует отчетливо понимать, что работа с динамическими данными замедляет выполнение программы, поскольку доступ к величине происходит в два шага: сначала ищется указатель, затем по нему — величина. Если динамическая величина теряет свой указатель, то она становится «мусором». В программировании под этим словом понимают информацию, которая занимает память, но уже не нужна. DISPOSE(< указатель >); Стандартная процедура, позволяющая освобождать память от данных, потребность в которых отпала. GetMem(P,Size) - резервирование памяти; FreeMem(P,Size) - освобождение памяти. Р — нетипизированный указатель, Size — размер в байтах требуемой или освобождаемой части кучи (до 65521 байт).
Для работы с динамическими переменными в программе должны быть выполнены следующие действия:
-Выделение памяти под динамическую переменную;
-Инициализация указателя;
-Освобождение памяти после использования динамической переменной.
Альтернативой использованию функции Dispose является применение функций Mark и Release, которые совместно обеспечивают освобождение динамического участка памяти после его использования в программе. В действительности вызов функции Mark должен делаться до обращения к функции New, а вызов функции Release должен делаться после функции New, когда требуется перераспределить память. Функция Release освобождает все участки памяти, которые выделялись между вызовами функций Mark и Release.
Динамическим считается массив, который способен в любой момент изменять свой размер.
Массив указателей (МУ) - простейшая структура данных, в которой проявляется различие между физическим и логическим порядком следования элементов. Способ организации данных это массив, каждый элемент которого содержит указатель на переменную (объект).
Sizeof — для определения размера необходимой памяти. Sizeof(q), где Q переменная или тип. memAvail — возвращает сумарный размер всех свободных областей динамической памяти.