Краткие итоги

Ключевые термины

Работа с памятью при использовании динамических структур

В программах, в которых необходимо использовать динамические структуры данных, работа с памятью происходит стандартным образом. Выделение динамической памяти производится с помощью операции new или с помощью библиотечной функции malloc (calloc). Освобождение динамической памяти осуществляется операцией delete или функцией free.

Например, объявим динамическую структуру данных с именем Node с полями Name, Value и Next, выделим память под указатель на структуру, присвоим значения элементам структуры и освободим память.

struct Node {char *Name;

int Value;

Node *Next

};

Node *PNode; //объявляется указатель

 

PNode = new Node; //выделяется память

 

PNode->Name = “STO”; //присваиваются значения

PNode->Value = 28;

PNode->Next = NULL;

 

delete PNode; // освобождение памяти

Адрес сегмента – это одно из машинных слов, составляющих адрес динамического элемента, которое представляет собой адрес первого элемента структуры.

Адресное поле (поле связок) – это поле структуры, в котором содержится указатель, связывающий данный элемент с другими элементами структуры.

Динамические структуры данных – это структуры данных, память под которые выделяется и освобождается не на этапе компиляции, а в процессе работы программы.

Динамический элемент – это элемент динамической структуры, который в конкретный момент выполнения программы может либо существовать, либо отсутствовать в памяти.

Динамическое распределение памяти –это выделение памяти под отдельные элементы в тот момент, когда они «начинают существовать» в процессе выполнения программы.

Информационное поле (поле данных) – это поле структуры, в котором содержатся непосредственно обрабатываемые данные.

Связное представление данных – это установление связи между элементами динамической структуры через указатели.

Смещение – это одно из машинных слов, составляющих адрес динамического элемента, которое представляет собой изменение адреса относительно первого элемента структуры.

1.В программах возникает необходимость обрабатывать данные, размер которых заранее неизвестен.

2.Для данных с достаточно большим или переменным размером используются динамические структуры.

3.Динамические структуры не имеют имени, под них выделяется память в процессе выполнения программы, количество их элементов может не фиксироваться, в процессе выполнения программы может меняться характер взаимосвязи между элементами структуры.

4.Каждой динамической структуре ставится в соответствие статическая переменная – ее адрес.

5.Представление динамических структур в памяти определяется как связное.

6.Связное представление данных в программах имеет как достоинства, так и недостатки.

7.Существует классификация динамических структур данных в зависимости от связей между элементами и допустимых операций.

8.Элемент динамической структуры состоит как минимум из двух полей: адресного и информационного.

9.Адресное поле формируется из двух слов: адрес сегмента и смещение.

10.Доступ к данным в динамических структурах осуществляется с помощью операции косвенного выбора.