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