Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708

Выделение динамической памяти

16.03.2020, 15:27. Показов 701. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуация заключается в следующем я выделил память под двумерный массив, но получилось так что мне нужно выделить еще память

C++
1
2
3
4
5
6
 #define N 2
#define M 5
int **arr = new int*[N];//объявление массива
 
    for (int count = 0; count < N; count++){//выделение памяти под массив
        int*arr = new int[M];
А мне нужно дополнить ещё один массив длины 5. Как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2020, 15:27
Ответы с готовыми решениями:

Выделение динамической памяти
Добрый вечер. Помогите разобраться пожалуйста! Суть такова: есть файл, в нем есть данные, мне надо их оттуда считать и вывести на...

Выделение динамической памяти
Всем привет. Возникла задача, в которой мне необходимо знать как выделяется динамическая память средсвами new/delete. А именно,...

Выделение динамической памяти
Чем int *List = new int; delete List; отличается от обычного массива (int List) ? Нет, я понимаю, что создал динамическую...

16
 Аватар для Annemesski
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,687
16.03.2020, 15:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int **tmparr = new int*[N+1];
for (int i = 0; i < N + 1; i++)
    int tmparr[i] = new int[M];
 
for (int i = 0; i < N; i++)
{
    for (int j = 0; j < M; j++)
        tmparr[i][j] = arr[i][j];
}
 
delete [] arr;
arr = tmparr;
tmparr = nullptr;
0
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
16.03.2020, 15:33
строка 6:
C++
1
arr[count] = new int[M];
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 15:33
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
А мне нужно дополнить ещё один массив длины 5. Как это сделать?
C++
1
2
3
4
5
6
7
8
9
int n = N;
int **arr2 = new int*[n + 1];
arr2[n] = new int[M];
 
std::move(arr, arr + n, arr2);
delete[] arr;
arr = arr2;
 
++n;
1
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 15:56  [ТС]
oleg-m1973, хурма в том что у меня массив двумерный будет дополняться. И размер меняется будет в ходе выполнения, так что просто написать n +1, не совсем верно))
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 15:58
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, хурма в том что у меня массив двумерный будет дополняться. И размер меняется будет в ходе выполнения, так что просто написать n +1, не совсем верно))
Почему? В двумерный массив добавляется ещё одно строка, старые копируются, что не так?
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 16:38  [ТС]
oleg-m1973, а что за arr.... Где он проиницилизирован?

Добавлено через 3 минуты
oleg-m1973, и потом как работает
C++
1
2
delete[]arr;
arr = arr2; // как если строкой выше, массив arr удалён...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 16:40
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, а что за arr.... Где он проиницилизирован?
У тебя
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
int **arr = new int*[N];//объявление массива
for (int count = 0; count < N; count++){//выделение памяти под массив
        int*arr = new int[M];
Добавлено через 1 минуту
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, и потом как работает
Создаёшь новый массив указателей, большего размера, копируешь в него указатели из старого, старый удаляешь
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 16:48  [ТС]
oleg-m1973, а чуть подробнее про move можно объяснить как он работает
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 16:51
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, а чуть подробнее про move можно объяснить как он работает
https://en.cppreference.com/w/cpp/algorithm/move
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 20:56  [ТС]
oleg-m1973,
C++
1
2
int arr1[2][4] = {{1,2,3,4}, {5,6,7,8};
int arr2[1][4] = {{9,0,1,2}};
А как arr2 записать в конец arr1?
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 21:12
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
А для статичных это как будет выглядеть?
Что именно?
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 21:31  [ТС]
oleg-m1973, просто конкретный пример. Есть массив arr1 и к нему приклеить arr2.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 21:33
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, просто конкретный пример. Есть массив arr1 и к нему приклеить arr2.
Никак. Это же статические массивы, к ним ты ничего не приклеишь. И у них совсем другая структура.
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 21:38  [ТС]
oleg-m1973, а можно с динамическим массивом рабочий пример...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
16.03.2020, 21:42
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, а можно с динамическим массивом рабочий пример...
Так у тебя ж вроде и было с динамическими массивами
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
16.03.2020, 21:46  [ТС]
oleg-m1973, я просто конкретный пример, если можно))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2020, 21:46
Помогаю со студенческими работами здесь

Выделение динамической памяти
Доброго времени суток! я начинающий программист, столкнулась с такой проблемой: выделяю память под динамический массив, например ...

Выделение динамической памяти C++
Всем доброго времени суток. Вот столкнулся с проблемой и пока что не приходит ничего интересного по поводу её решения. есть у меня метод,...

выделение динамической памяти
помогите пожалуйста , нужно написать функцию для ввода новой матрицы, не получается выделить под него память. класс: mymatrix ::...

Выделение динамической памяти
Доброго времени суток! Возник такой вопрос, переделываю программу, где параметры матрицы задавались константами на выделение динамический...

Выделение динамической памяти
Всем доброго времени суток. Прошу помочь с задачей. Задача решена, просто нужно переделать её с выделением динамической памяти. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru