Назад Домой! Дальше Лекция 10. Динамические структуры данных и указатели.


Общие сведения

Динамические структуры данных, в отличие от изученных нами ранее статических структур, создаются (т е размещаются в оперативной памяти) во время исполнения программы. Статические данные размещаются при загрузке программы и занятая ими память не может быть освобождена или использована для других целей во время исполнения программы.

Отсюда ясно, что основное преимущество структур данных, размещаемых динамически, заключается в экономии памяти. Кроме того, каждая структура (массив, запись, массив записей и т д) размещаяемая динамически, может занимать до 64Кб памяти (а в сумме, вся программа - до 1Мб). Схема динамического размещения данных:

Типы указателей, описание указателей

Пример использования типизированного указателя.

Программа размещает динамически 100 случайных чисел, находит среднее значение. Затем освобождает занимаемую память.
Текст программы:
const count = 100;
type arab = array [1..count] of single;
var para: ^arab; ii: integer; sum: single;
begin randomize; 
 writeln('Наличие памяти в начале = ',memavail);
 new(para);
 writeln('Наличие памяти после выделения = ',memavail);
 sum := 0;
  for ii:=1 to count do
    begin
      para^[ii]:= random*200;
      sum := sum + para^[ii];
    end;
  writeln ('Среднее значение = ',sum/100:0:3);
  dispose(para);
  writeln('Наличие памяти в конце = ',memavail);
  readln;
end.
---- Результаты ----
Наличие памяти в начале = 293296
Наличие памяти после выделения = 292896
Среднее значение = 101.510
Наличие памяти в конце = 293296
----- Примечание: --------
1 Для вычисления среднего значения можно было обойтись без массива para^:
sum := sum + random*200;
2 Выделено памяти: 400 байт, т е число типа single занимает 4 байта.
Назад Дальше
Rambler's Top100
Hosted by uCoz