Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Getmem (p, sizeof(real)); Getmem(q, sizeof(A));



Разыменование (занесение значений)

x^:= 10; y^:= 20; B^:=255; R^:=1.125;

for i:=1 to 5 do Pa^[i]:= sqr(i);

Pr^.c:= `$`; Pr^.n:= 1000;

Копирование значений

x^:= y^;

R^:= B^;

Копирование адресов

x:=y;

Пусть в тексте программы имеется: var k:real; … k:= 625.5;

Тогда присвоение адреса переменной k указателям r и p будет выглядеть следующим образом: r:=@k; p:=@k;

Высвобождение памяти

Dispose(y); Dispose(x);

Freemem (p,sizeof(p));

Dispose(Pa); Dispose(Pr);

13.5.7. Задание «нулевого» значения

New(x);

x:= nil;

ИСПОЛЬЗОВАНИЕ УКАЗАТЕЛЕЙ ДЛЯ ОРГАНИЗАЦИИ СВЯЗАННЫХ ДИНАМИЧЕСКИХ СТРУКТУР

Чаще всего указатели используют для ссылки на записи, чем достигается значительная экономия памяти. В такие записи включаются информационные поля для хранения интересующих пользователя данных (любого типа, который может быть полем записи) и обязательно хотя бы одно поле-указатель на следующую запись. Наличие поля-адреса позволяет образовывать связанные списки – структуру, в которой отдельные записи связаны последовательно друг с другом посредством поля-указателя.

Списки

Линейный список – связанный список, в котором имеется адрес точки входа в список (обозначим его HEAD), а последний элемент указывает на Nil. В любую точку списка разрешается добавлять элемент (ы) и исключать любой элемент. Обе операции производятся с помощью перенастройки указателей и, соответственно, выделения памяти и занесения в нее значения (в случае вставки элемента в список) или высвобождения памяти (в случае удаления из списка).

П р и м е р линейного односвязного списка представлен на рис. 14.1.


Рис. 14.1. Список в динамической памяти

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

П р и м е р описания списка

Type psp = ^tsp;

tsp = Record

{Поля любых типов}

next: psp

End;





Дата публикования: 2014-10-25; Прочитано: 312 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...