Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Одномерные и двумерные динамические массивы.↑ Стр 1 из 2Следующая ⇒ Содержание книги
Поиск на нашем сайте
Одномерные и двумерные динамические массивы. Одномерные динамические массивы При использовании многих структур данных достаточно часто бывает, что они должны иметь переменный размер во время выполнения программы. В этих случаях необходимо применять динамическое выделение памяти. Одной из самых распространенных таких структур данных являются массивы, в которых изначально размер не определен и не зафиксирован. В соответствии со стандартом языка массив представляет собой совокупность элементов, каждый из которых имеет одни и те же атрибуты. Все эти элементы размещаются в смежных участках памяти подряд, начиная с адреса, соответствующего началу массива. То есть общее количество элементов массива и размер памяти, выделяемой для него, получаются полностью и однозначно заданными определением массива. Но это не всегда удобно. Иногда требуется, чтобы выделяемая память для массива имела размеры для решения конкретной задачи, причем ее объем заранее не известен и не может быть фиксирован. Формирование массивов с переменными размерами (динамических массивов) можно организовать с помощью указателей и средств динамического распределения памяти. Динамический массив – это массив, размер которого заранее не фиксирован и может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования С++, поддерживающий такие массивы, предоставляет специальные встроенные функции или операции. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объемы данных, а регулировать размер массива в соответствии с реально необходимыми объемами. Объявление одномерных динамических массивов Под объявлением одномерного динамического массива понимают объявление указателя на переменную заданного типа для того, чтобы данную переменную можно было использовать как динамический массив. Синтаксис: Тип * ИмяМассива;ИмяМассива – идентификатор массива, то есть имя указателя для выделяемого блока памяти. Тип – тип элементов объявляемого динамического массива. Элементами динамического массива не могут быть функции и элементы типа void. Например: int *a; double *d;В данных примерах a и d являются указателями на начало выделяемого участка памяти. Указатели принимают значение адреса выделяемой области памяти для значений типа int и типа double соответственно. Таким образом, при динамическом распределении памяти для динамических массивов следует описать соответствующий указатель, которому будет присвоено значение адреса начала области выделенной памяти. Освобождение памяти, выделенной под одномерный динамический массив Освобождение памяти, выделенной под одномерный динамический массив, также осуществляется 2 способами. 1) при помощи операции delete, которая освобождает участок памяти ранее выделенной операцией new. Синтаксис: delete [] ИмяМассива;ИмяМассива – идентификатор массива, то есть имя указателя для выделяемого блока памяти. Например: delete [] mas; /*освобождает память, выделенную под массив, если mas адресует его начало*/delete [] m;delete [] lm;Квадратные скобки [] сообщают оператору, что требуется освободить память, занятую всеми элементами, а не только первым. 2) при помощи библиотечной функции free, которая служит для освобождения динамической памяти. Синтаксис: free (ИмяМассива);ИмяМассива – идентификатор массива, то есть имя указателя для выделяемого блока памяти. Например: free (a); //освобождение динамической памятиЗадания для выполнения
Одномерные и двумерные динамические массивы.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.49.213 (0.005 с.) |