Динамический массив Динамическим называется массив, размер которого может — презентация
logo
Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
  • Динамический массив Динамическим называется массив, размер которого может
1/16

Первый слайд презентации

Динамический массив Динамическим называется массив, размер которого может изменяться во время исполнения программы. Возможность изменения размера отличает динамический массив от статического, размер которого задаётся на момент компиляции программы. Если при описании статического массива не сделать size константой, то будет ошибка компиляции, т.к. память для массива должна выделиться ДО начала работы программы. Для динамического массива память будет выделяться ВО ВРЕМЯ работы программы, поэтому размер массива даже можно получить от пользователя.

Изображение слайда

Слайд 2

Задача 1. Создать динамический массив, получив его длину от пользователя. Заполнить массив случайными числами. Вывести массив. Вернуть память в кучу.

Изображение слайда

Слайд 3

Двумерный динамический массив Поскольку в двумерном массиве указатели на элементы одномерного массива будут хранить указатели на элементы одномерного массива, необходимо использовать указатели на указатели (значения rows и cols можно получить от пользователя): Утечка памяти Указатель на rows cols delete[] a; приведет к тому, что rows уничтожатся, а cols потеряются в куче.

Изображение слайда

Слайд 4

Чтобы избежать утечки памяти: Указатель на rows cols

Изображение слайда

Слайд 5

Заполнение и вывод этого двумерного динамического массива

Изображение слайда

Слайд 6

Задача 2. Создать двумерный динамический массив, получив его параметры от пользователя. Заполнить массив случайными числами. Вывести массив. Вернуть память в кучу.

Изображение слайда

Слайд 7

Копирование динамического массива просто b начнет указывать на ту же ячейку памяти что и a, изначальный массив b потеряется (утечка памяти), и при последующем изменении массива b изменится и массив a : a b Операция копирования динамического массива не равнозначна операции простого копирования значения из одной переменной в другую переменную. Массив является указателем, имя массива – указатель на нулевой элемент. Если напрямую попытаться присвоить одному массиву другой массив, то НЕ появится копии массива:

Изображение слайда

Слайд 8

Правильный алгоритм действий: Были два массива разного размера. Нужно, чтобы массив b стал именно копией массива a. Для этого нужно удалить массив b (вернуть память куче). Затем снова выделить память под b, но уже для другого кол-ва элементов (при этом память может оказаться выделенной как по тому же адресу, где был b, так и по любому другому). Поэлементно (в цикле) скопировать a в b. Результат: Решение: a b

Изображение слайда

Слайд 9

Изображение слайда

Слайд 10

Изображение слайда

Слайд 11

Задача 3. Написать программу, которая меняет местами два динамических массива разного размера.

Изображение слайда

Слайд 12

Изменение размера массива Все элементы массива располагаются в оперативной памяти строго последовательно. Ячейка в оперативной памяти, расположенная после последнего элемента созданного массива может быть занята и недоступна для перезаписи. Поэтому для того, чтобы увеличить массив, придется сначала создать новый массив нужного размера (выделить для него память), затем с помощью цикла скопировать в него элементы из предыдущего массива, добавить необходимые элементы и удалить изначальный массив (вернуть память куче). При необходимости удалить элемент массива действовать придется описанным выше способом, поскольку обход массива осуществляется по адресам ячеек памяти и обнуление ненужного элемента в начале / середине массива не приведет к его удалению. Если попытаться удалить последние элементы и размеру массива назначить новое значение, то произойдет утечка памяти, т.к. к последним элементам не будет доступа, а место в куче для них будет всё также зарезервировано. Добавление элемента в конец массива:

Изображение слайда

Слайд 13

Изображение слайда

Слайд 14

Добавим в предыдущую программу еще одну функцию: Удаление последнего элемента массива: Дополним main() :

Изображение слайда

Слайд 15

Задача 4. Изменить представленную выше программу: a) размер изначального массива = 7; b) добавление и удаление элемента с индексом 0; c) добавление и удаление элемента с индексом 3.

Изображение слайда

Последний слайд презентации: Динамический массив Динамическим называется массив, размер которого может

1. Написать программу, создающую массив из 10 случайных целых чисел из отрезка [-50;50]. Вывести на экран весь массив и на отдельной строке — значение минимального элемента массива. Для обхода массива использовать указатели (нельзя обращаться к элементам массива по индексам). 2. С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее: Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [ а,b ], а потом – все остальные.

Изображение слайда

Похожие презентации

Ничего не найдено