Динамические структуры строятся из динамических элементов.
Разновидности динамических структур
Примеры.
Операция 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 до нескольких тысяч элементов и при этом экономно использовала ресурсы компьютера. Такие задачи решаются при помощи динамических структур.
Динамические структуры способны увеличиваться и уменьшаться в процессе работы. Должен быть организовать доступ к каждому элементу динамической структуры.
Динамический элемент состоит из двух частей:
· информационная часть – хранит значение элемента
· указатели – это адреса одного или нескольких других динамических элементов
В простейшем случае динамический элемент имеет вид:
В данном случае информационная часть состоит из одного поля, которое используется для хранения одного целого числа, указатель – из указателя на один элемент.