|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.04.2014, 01:24 | #11 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
realloc не будет "раскидывать" по памяти.
Если впереди старого массива будет достаточно свободной памяти - блок просто расширится. Если нет - он просто перенесется в другое место, где есть достаточный кусок незанятой памяти, а старый блок освободится. |
20.04.2014, 16:37 | #12 |
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
до слова exit вводятся элементы массива
Код:
Списки надо.При вставке элемента,его надо выделить и поменять пару значений указателей .Никаких супер-пупер выделений огромных кусков не происходит Последний раз редактировалось alekopoko; 20.04.2014 в 17:57. |
21.04.2014, 08:26 | #13 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 65
|
писал контрольную. для создания двухмерного массива и заполнения его данными создавал массив по заранее введеными его размерами. помоему динамический массив называется.
// создаем размер нового массива int **array = new int* [M.y]; for(y1=0;y1<M.y;y1++) array[y1]=new int [M.x]; array[M.y][M.x]; [M.y][M.x] размеры матрицы из конструктора |
21.04.2014, 09:23 | #14 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
21.04.2014, 10:23 | #15 |
Пользователь
Регистрация: 11.04.2014
Сообщений: 21
|
Всегда интересовал вопрос, зачем нужны двумерные массивы (особенно, динамические)? Одномерный же быстрее обрабатывается. А писать m[i*n+j] вместо m[i][j] - не такая уж проблема...
|
21.04.2014, 10:25 | #16 |
Пользователь
Регистрация: 11.04.2014
Сообщений: 21
|
Кстати, да. Но на перенос тоже будет время затрачено. И не факт что найдётся нужного размера блок памяти. А через указатели, можно хоть всю оперативку забить...
|
21.04.2014, 14:46 | #17 | ||
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
Цитата:
вот тут и пригодится двумерный массив - char a[строки][столбцы] ну еще пример : задачки с матрицами тоже решают с помощью двумерного массива Цитата:
и благодаря этому массивы стали расширяемыеми данными . А так то они статические у которых определенный фиксированный неизменяемый размер. ну опять же повторюсь, если надо часто добавлять или удалять данные,то расширяемый массив не подходит.Деревья, списки лучше. |
||
21.04.2014, 20:59 | #18 |
Пользователь
Регистрация: 11.04.2014
Сообщений: 21
|
Так твою задачу можно решить в одномерном массиве. А твой двумерный при выделении памяти в цикле будет раскидан по всей оперативке. И если у тебя массив 100 на 100, то ты, конечно, ничего не заметишь. Другое дело, когда 1000 на 1000 000, например.
|
22.04.2014, 19:06 | #19 | |
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
Цитата:
пример реализации двумерного массива карточная игра как представить карты? есть два определения карты - масть и номинал(цифра) эти данные идеально представляются в виде таблицы - где заголовки строк номиналы ,а столбцы - масти или наоборот |
|
25.04.2014, 12:33 | #20 | |
Пользователь
Регистрация: 11.04.2014
Сообщений: 21
|
Цитата:
Код:
Код:
Не? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввести число N. Вывести N строк с номером строки, двоеточием и набором чисел от 1 до N+1-k (где k-номер строки) ( в С ) | Eduard12345 | Помощь студентам | 1 | 11.10.2013 07:25 |
заранее не известно количество аргументов | SAMOUCHKA | Общие вопросы C/C++ | 7 | 18.05.2013 23:35 |
Найти сумму элементов матрицы и подсчитать число ее строк, в пределах каждой из которых элементы упорядочены по возрастанию:Ai1<Ai | Renc | Visual C++ | 0 | 12.04.2013 13:59 |
Дан массив размерности, определить номера строк элементы которых образуют последовательность С++ | Lera | Помощь студентам | 2 | 18.12.2009 17:17 |
Ввести натуральное число N . Вывести треугольник, содержащий N строк вида | Arei15 | Помощь студентам | 2 | 31.10.2009 23:41 |