|
Указатели и динамическая память
- Динамическая память
- Адреса и указатели
- Объявление указателей
- Выделение и освобождение динамической
памяти
- Использование указателей
- Процедуры и функции для работы с
динамической памятью
- Администратор кучи
Динамическая память
Все переменные, объявленные в программе,
размещаются в одной непрерывной области оперативной
памяти, которая называется сегментом данных. Длина сегмента
данных определяется архитектурой микропроцессоров 80x86
и составляет 65536 байт, что может вызвать известные
затруднения при обработке больших массивов данных. С
другой стороны, объем памяти ПК (обычно не менее 640
Кбайт) достаточен для успешного решения задач с большой
размерностью данных. Выходом из положения может служить
использование так называемой динамической памяти.
Динамическая память - это оперативная
память ПК, предоставляемая программе при ее работе,
за вычетом сегмента данных (64 Кбайт), стека (обычно
16 Кбайт) и собственно тела программы. Размер динамической
памяти можно варьировать в широких пределах (см. прил.1).
По умолчанию этот размер определяется всей доступней
памятью ПК и, как правило, составляет не менее 200...300
Кбайт.
Динамическая память - это фактически
единственная возможность обработки массивов данных большой
размерности. Многие практические задачи трудно или невозможно
решить без использования динамической памяти. Такая
необходимость возникает, например, при разработке систем
автоматизированного проектирования (САПР): размерность
математических моделей, используемых в САПР, может значительно
отличаться в разных проектах; статическое (т.е. на этапе
разработки САПР) распределение памяти в этом случае,
как правило, невозможно. Наконец, динамическая память
широко используется для временного запоминания данных
при работе с графическими и звуковыми средствами ПК.
Динамическое размещение данных означает
использование динамической памяти непосредственно при
работе программы. В отличие от этого статическое размещение
осуществляется компилятором Турбо Паскаля в процессе
компиляции программы. При динамическом размещении заранее
не известны ни тип, ни количество размещаемых данных,
к ним нельзя обращаться по именам, как к статическим
переменным.
|