Динамические структуры строятся из динамических элементов.

Разновидности динамических структур

Примеры.

Операция delete

Операция new

Пример.

Функция free

 

Функция free освобождает память, выделенную функцией malloc.

 

Освободим память, выделенную в предыдущем примере:

free (str);

 

В версиях, начиная с 3-й, Borland C++ содержит операции (операторы) new и delete. Они являются улучшенными вариантами функций malloc и free.

 

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

В случае успешного завершения new возвращает адрес созданной переменной.

В отличие от функции malloc, при использовании операции new не нужно указывать количество байт памяти, которое необходимо выделить.

 

Примеры:

/* Опишем указатели на целую и вещественную переменные и указатель на символ */int * uk_i; double * uk_d;char * uk_c; /* Выделим память под число типа int адрес памяти присвоим указателю uk_i */uk_i = new int;* uk_i=10; // запишем число 10 в ячейку памяти с адресом uk_i; /* Выделим память под число типа double, запишем в нее число 3.1415 и присвоим указателю uk_d ее адрес */uk_d=new double (3.1415); /* Выделим память под числоuk_с=new char [ 60 ] ;

 

Можно выполнить проверку:

If !(uk_i && uk_d && uk_c){cout << "Не хватает памяти";}

 

Операция delete освобождает память, выделенную операцией new.

Продолжим предыдущий пример, освободим выделенную память:

delete uk_i;delete uk_d;delete [ kol_s ] uk_s;

где kol_s – количество символов в строке.

 

Тема 1.10. Динамические структуры

Цель изучения темы

· познакомиться с различными динамическими структурами

· научиться работать с динамическими структурами в языке С++

 

До сих пор все рассмотренные программы позволяли работать с массивами фиксированной длины, например массив из 100 элементов. В реальной жизни обычно требуется, чтобы программа могла принимать от 50 до нескольких тысяч элементов и при этом экономно использовала ресурсы компьютера. Такие задачи решаются при помощи динамических структур.

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

 

Динамический элемент состоит из двух частей:

· информационная часть – хранит значение элемента

· указатели – это адреса одного или нескольких других динамических элементов

В простейшем случае динамический элемент имеет вид:

 

 

В данном случае информационная часть состоит из одного поля, которое используется для хранения одного целого числа, указатель – из указателя на один элемент.