Введение в программирование. Pascal и Delphi. Гурьянов Л.В - 92 стр.

UptoLike

91
6. Динамические структуры дан-
ных.
Указатели
6.1. Основные понятия и определения
При разработке программ часто возникает проблема, связанная с
тем, что
объем обрабатываемой в программе информации (соответ-
ственно и размер памяти, необходимой для хранения этой информа-
ции)
неизвестен или может быть определен только в процессе ра-
боты программы
.
Например, количество компонент файла можно определить толь-
ко после того, как он будет открыт (после выполнения в программе
оператора Reset).
Использовать такую удобную для обработки информации струк-
туру данных, как массив, нельзя, если неизвестно количество его
элементов.
Все объявления в разделе описания переменных (раздел
var) тре-
буют точного значения размерности (например,
array[1..10]), так как
на основе этой информации компилятор "распределяет" память для
используемых в программе данных.
Статическое распределение памятиэто распределение памяти
в процессе компиляции программы, т. е. до начала ее выполнения
.
Динамическое распределение памятиэто распределение па-
мяти в процессе работы программы. Для получения памяти в этом
случае в программе необходимо выполнить запрос к операционной
системе (ОС). По этому запросу ОС выделяет память в динамической
области оперативной памяти компьютера – "куче" (
heap) и возвра-
щает программе начальный адрес выделенного участка оперативной
памяти. Доступ к данным, значения которых расположены в выделен-
ной динамической области памяти, требует использования в програм-
ме переменной, значением которой и будет возвращаемый ОС адрес.
Такая переменная имеет специальный, ссылочный тип данных
указатель.
  6. Динамические структуры дан-
  ных.
     Указатели
  6.1. Основные понятия и определения
   При разработке программ часто возникает проблема, связанная с
тем, что объем обрабатываемой в программе информации (соответ-
ственно и размер памяти, необходимой для хранения этой информа-
ции) неизвестен или может быть определен только в процессе ра-
боты программы.
   Например, количество компонент файла можно определить толь-
ко после того, как он будет открыт (после выполнения в программе
оператора Reset).
   Использовать такую удобную для обработки информации струк-
туру данных, как массив, нельзя, если неизвестно количество его
элементов.
   Все объявления в разделе описания переменных (раздел var) тре-
буют точного значения размерности (например, array[1..10]), так как
на основе этой информации компилятор "распределяет" память для
используемых в программе данных.
   Статическое распределение памяти – это распределение памяти
в процессе компиляции программы, т. е. до начала ее выполнения.
   Динамическое распределение памяти – это распределение па-
мяти в процессе работы программы. Для получения памяти в этом
случае в программе необходимо выполнить запрос к операционной
системе (ОС). По этому запросу ОС выделяет память в динамической
области оперативной памяти компьютера – "куче" (heap) и возвра-
щает программе начальный адрес выделенного участка оперативной
памяти. Доступ к данным, значения которых расположены в выделен-
ной динамической области памяти, требует использования в програм-
ме переменной, значением которой и будет возвращаемый ОС адрес.
Такая переменная имеет специальный, ссылочный тип данных –
указатель.



                                91