Динамические переменные не имеют своего имени и в процедурах выделения памяти используется не имя переменной, а имя указателя. Для обращения к информации, находящейся по адресам указателей используют разименование переменных.
До использования процедур New и GetMem значения указателей не определены и работать с ними нельзя. Часто используют обнуление указателей, чтобы избежать ошибок.
Если в программе пропустить операторы выделения памяти (обнуления), возникает неконтролируемая ошибка. При выделении динамической памяти можно использовать функции:
Существует несколько способов освобождения памяти, занятой динамическими переменными:
Эти команды используются совместно и позволяют очистить целую область памяти, расположенную между Mark и Release.
После освобождения памяти указатели автоматически не обнуляются и фактически указывают на несуществующую переменную. Поэтому им необходимо присвоить значение Nil. Динамические переменные используются в основном в двух случаях:
Объявление указателя на массив:
TypetMas = Array [1..10000] of Integer;
pMas = ^tMas;
Var Mas : pMas;
При таком описании память будет выделена только под указатель Mas. В процессе работы программы необходимо будет выделить память под массив с помощью одной из команд.
New(p)
GetMem (p, N*SizeOf (Integer));
Задание 1
Составить и выполнить программу, заносящую информацию о студентах из предыдущих работ и сортирующая записи по возрасту.
Program Lab03_01;
Type
Point = Record
x,y:Real;
End;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.