Динамические структуры данных.
Цель работы:Получить практические навыки решения задач на компьютере с использованием динамических данных, а также работы со сложными (пользовательскими) типами данных – динамическими структурами.
Теоретические сведения
Для программы на С++ существует два способа хранения данных в основной памяти компьютера. Первый состоит в том, что память, предоставляемая под переменные, выделяется им при компиляции и не может быть изменена при выполнении программы. Это статическое распределение памяти. Второй способ заключается в использовании динамического распределения памяти, то есть получение памяти во время выполнения программы.
Динамическая работа с памятью дает программисту широкие возможности - программа может создавать переменные в нужном количестве, в зависимости от ситуации, динамическое выделение памяти для тех или иных целей – важная составляющая почти всех реальных программ.
Кроме того, есть такие задачи, которые невозможно реализовать без динамического выделения памяти, например требуется изменение размера памяти по мере использования или размер памяти заранее не известен и определяется в ходе работы программы.
Распределение памяти компьютера.
| Верхние адреса памяти
|
Стек, локальные переменные и константы.
|
|
|
Динамическая память (Куча)
|
|
|
Статическая память
Глобальные переменные и константы
|
|
Нижние адреса памяти
|
Программа пользователя
|
Операционная система позволяет получать память динамически «из кучи» во время выполнения программы.