68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
|
||||||
1 | ||||||
Новый элемент в динамический массив13.10.2013, 20:42. Показов 1605. Ответов 7
Метки нет (Все метки)
Здравствуйте!
Меня интересует один вопрос: можно ли в динамический массив добавлять размерность, или это делается путём копирования старого массива в новый? Т.е. вот, допустим в динамическом массиве я сделал так, что выделил 100 элементов под него, и, допустим, я заполнил все 100 элементов данного массива, и я хочу добавить новый элемент, 101-й. Как вариант-создать второй динамический массив с увеличенной размерность, как у старого массива, только +1(т.к. добавляем 1 элемент), потом занести значения из 1-го дин. массива в 2-й дин. массив, после чего, очистить 1-й динам. массив, и просто выделить память для 1-го дин. массива, как размерность 2-го, занести туда всё из 2-го, и в конце-очистить 2-й дин. массив. В итоге-получим увеличенный дин. массив, размерность которого теперь 101 элемент. Но это слишком долго... Меня интересует-есть ли более простой способ занести новый элемент в дин. массив, или, остаётся только лишь такой вариант? Добавлено через 8 минут Пример добавления нового эл-та в дин. массив(с изменением его размерности): Кликните здесь для просмотра всего текста
По логике-должно быть так... Просто, на данный момент-не имею возможности проверить правильность кода...
0
|
13.10.2013, 20:42 | |
Ответы с готовыми решениями:
7
Не могу добавить последний элемент в новый динамический массив Как передвигать указатель чтобы выделить память под новый элемент и добавить новый элемент в массив? Дан динамический массив.Нужно удалить из него все простые числа и добавить оставшееся в новый массив Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла |
238 / 238 / 113
Регистрация: 03.09.2011
Сообщений: 558
|
|
13.10.2013, 20:49 | 2 |
да все делается путем создания нового массива с увеличеным размером и копирования элементов со старого
0
|
109 / 107 / 44
Регистрация: 04.10.2013
Сообщений: 231
|
||||||
13.10.2013, 20:49 | 3 | |||||
попробуй vector
0
|
68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
|
|
13.10.2013, 20:50 [ТС] | 4 |
Hoottie_McGOOB, я бы его только и использовал, если бы не одно но:
нужно использовать именно С, а не С++, а вектора-это уже из С++(как преподаватель говорит), так что, увы, нельзя...
0
|
109 / 107 / 44
Регистрация: 04.10.2013
Сообщений: 231
|
|
13.10.2013, 20:52 | 5 |
нет так нет)
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
|
13.10.2013, 20:53 | 6 |
В Си есть функция realloc() - позволяющая изменить размер массива не удаляя его.
0
|
68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
|
||||||
13.10.2013, 21:12 [ТС] | 7 | |||||
zss, попробовал-выдало ошибку:
"(C++) Изменение размера массива.exe вызвал срабатывание точки останова." Код программы: Кликните здесь для просмотра всего текста
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
||||||
13.10.2013, 22:51 | 8 | |||||
1
|
13.10.2013, 22:51 | |
13.10.2013, 22:51 | |
Помогаю со студенческими работами здесь
8
Двумерные массивы. Найти новый одномерный массив, максимальный элемент, заменить третий элемент Как добавить новый элемент в динамический массив Дан массив C(N). Создать новый массив, заменив положительные элементы на максимальный элемент, отрицательные – на минимальный элемент, нулевые оставив В непустой динамический двусвязный список вставить новый элемент E1 перед первым вхождением элемента Е Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |