Память для переменных может быть выделена статически, то есть на этапе компиляции, или динамически, в процессе выполнения программы. В зависимости от этого переменные называют статическими или динамическими. Память, выделенная статически, остаётся за переменными и константами до конца выполнения программы, даже если они больше не используются в программе.
Если объявлено несколько больших массивов, памяти может не хватить. Выход из положения – использование динамической памяти.
Паскаль даёт возможность образовать и уничтожить переменные в любой момент работы программы в соответствии с потребностями решаемой задачи.
Определение Динамическими переменными называются переменные, созданием и уничтожением которых можно управлять из программы в процессе её выполнения.
Динамическая память (куча, heap) необходима в следующих случаях:
1. для больших массивов, которые не используются одновременно;
2. для массивов или записи, размер которых превышает 64Кбайт;
3. для массивов, требуемый объём ОП для которых определяется в процессе выполнения программы;
4. для временного запоминания данных при работе с графическими и звуковыми средствами персонального компьютера.
Достоинства динамической памяти:
1. экономичность и эффективность использования ОП;
2. возможность динамического изменения (процессе выполнения программы) количества элементов массива и связанных структур;
3. динамические переменные существуют в случае необходимости до окончания работы программы.
Переменная, размещаемая динамически, объявляется в разделе var как указатель на данные определённого типа.