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

Как склеить два динамических массива

28.01.2020, 17:27. Показов 6439. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
int *a = new int [4];
int *b = new int [10];
В конец массива а дописать b, не используя третьего массива. Не подскажите как лучше?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2020, 17:27
Ответы с готовыми решениями:

Как объединить два динамических массива
,к примеру 1 2 3 5 и 4 5 7 8 9 на выходе 1 2 3 4 5 7 8 9

Как максимально быстро сложить два динамических одномерных массива? SSE?
Всем привет! Нужно максимально быстро сложить поэлементно два байтовых массива. Есть: unsigned char *buf1; unsigned char *buf2; ...

Два динамических массива в конструкторе класса
Доброго времени суток Вам!) Есть такая проблема, ни как не могу создать сразу два динамических массива в классе . Один у меня получился: ...

44
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
30.01.2020, 20:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
то есть фиксирую, программа работает. Когда динамически, то повреждается куча. Что делать?
А какая связь между lengthIN и x*sizeblocks?
И - там, наверное квадратные скобки надо использовать new unsigned char[x*sizeblocks]; new unsigned char[lengthIN]
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
30.01.2020, 21:04  [ТС]
oleg-m1973, lengthIN длина входного массива, который разбивается на икс блоков.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
30.01.2020, 21:11
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, lengthIN длина входного массива, который разбивается на икс блоков.
А выходной массив, dynamic, разве не должен быть размером lengthIN, вместо x*sizeblocks?
И покажи функцию funcXOR
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
30.01.2020, 21:39
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
а в чем разница???
не понял.

с этим что?
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
Когда динамически, то повреждается куча.
код ведёт себя ИНДЕНТИЧНО?
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 00:08  [ТС]
oleg-m1973, [1,3,5,7,8,932,67,43] -> размер блока равен трём и выбираем большее число в каждом блоке -> [5, 932,67]
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 09:40
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, [1,3,5,7,8,932,67,43] -> размер блока равен трём и выбираем большее число в каждом блоке -> [5, 932,67]
Где-то я уже это видел - Распараллеливание
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 09:41  [ТС]
oleg-m1973, да но вот почему у меня при статичном массиве работает и записывает все корректно и верно, а когда динамически выделяю, идёт по одному месту
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 09:44
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, да но вот почему у меня при статичном массиве работает и записывает все корректно и верно, а когда динамически выделяю, идёт по одному месту
Я правильно понимаю, что в той задаче тебе нужно сохранить локальные максимумы, которые я сделал printf, в массиве?
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 10:04  [ТС]
oleg-m1973, склеить полученные числа в массив, потом его бить на блоки и в блоках находить максимум и склеивать, пока не останется один элемент. А со стеком разобрался, там размер меньше выделял, чем нужно)
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 10:11
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, склеить полученные числа в массив, потом его бить на блоки и в блоках находить максимум и склеивать, пока не останется один элемент. А со стеком разобрался, там размер меньше выделял, чем нужно)
Т.е. всё теперь работает?
1
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 11:58  [ТС]
Да, но вот теперь ошибка в разбиении и склеиваний блоков;(
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 12:03
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
Да, но вот теперь ошибка в разбиении и склеиваний блоков;(
Итак, я правильно понимаю - тебе нужно выделить новый массив и заполнить его максимальными значениями из блоков предыдущего массива?
Если да, то что там склеивать?
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 12:26  [ТС]
oleg-m1973, полученные элементы записать в новый массив, дальше его пробежать по блокам и выделить максимальные элементы и записать их в массив. И так далее пока не останется массив из одного элемента. Я под это дело выделяю динамическиий массив. Я исходный массив разбиваю и нахожу максимальные элементы по блокам, записываю во временный динамический, потом как мне изменить размер исходного массива и в него скопировать результат, который будет лежать во временном?

Добавлено через 8 минут
oleg-m1973, я массив выделяю динамически с помощью malloc, хочу его зачистить с помощью free(array), у меня ошибка кучи...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 12:35
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, я массив выделяю динамически с помощью malloc, хочу его зачистить с помощью free(array), у меня ошибка кучи...
Склеивать там точно ничего не надо. Надо либо просто выделить массив нужного размера - n / 3, либо писать результат впрямо в исходный массив.
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 12:39  [ТС]
oleg-m1973, я после работы с динамическим массивом, хочу его удалить, у меня выскакивает ошибка кучи. Что делать? Задаю массив через new
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 12:47
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, я после работы с динамическим массивом, хочу его удалить, у меня выскакивает ошибка кучи. Что делать? Задаю массив через new
C++
1
2
3
4
5
6
7
8
9
10
unsigned char *in = new unsigned char[lengthIN]; // считывается
unsigned char *dynamic = new unsigned char[(lengthIN / sizeblocks + 1) * sizeblocks];
 
 
auto *dst = dynamic;
for (auto it = in, end = in + lengthIN; it < end; it += sizeblocks)
    funcXOR(it, std::min(it + sizeblock, end), dst++);
 
delete[] in;
delete[] dynamic;
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 14:01  [ТС]
oleg-m1973, а можно подробнее объяснить с комментариями?
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 14:09
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, а можно подробнее объяснить с комментариями?
Что именно непонятно?
0
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
31.01.2020, 15:34  [ТС]
oleg-m1973, dst- это указатель на массив? И сам цикл, как он работает...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2020, 15:47
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
oleg-m1973, dst- это указатель на массив? И сам цикл, как он работает...
Насколько я понял, тебе нужно взять три элемента из входного массива, что то подситать по ним и записать результат, один элемен. в выходной массив. Соответственно, в каждой итерации цикла я перемещаю указатель входного массива it на три, а указатель выходного массива на один. Так, как размер входного массива может быть не кратен трём, я проверяю размер последнего блока - std::min(it + sizeblock, end)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2020, 15:47

Как склеить два файла в один?
Вообщем проблема в том, что мне нужно записывать в начало файла. я создаю новый файл записываю в него информацию, а затем хочу...

Поэлементно просуммировать два динамических двумерных массива
Здравствуйте, у меня такое задание: Написать программу, которая поэлементно суммирует два динамических двумерных массива, заполненных...

Как склеить два куска динамически выделенной памяти?
Есть такой код char *arr = (char *) malloc(1); char *plus = (char *) malloc(25); arr = memcpy(arr + 1, plus, 25); Вопрос: можно ли...

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

Склеить два одномерных массива в один
Помогите склеить два массива в один, остался только цикл Он склеивает только пока что только размерность, а осталось занести туда...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru