![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.08.2012
Сообщений: 39
|
![]()
Здравствуйте, подскажите пожалуйста, правильно ли тут построено выделение памяти. Если неправильно, то почему?
Спасибо. Код:
Последний раз редактировалось Lifeda92; 26.08.2014 в 12:57. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я бы делал так: http://www.programmersforum.ru/showthread.php?t=117524
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.08.2012
Сообщений: 39
|
![]()
Подскажите еще пожалуйста, логических ошибок в блоке выделения памяти нету?
План по выделению памяти: 1. Выделяется массив указателей с кол-во элементов n (0..n-1). 2. Выделяется двумерный массив с кол-во элементов n*n (n..2n-1, 2n..3n-1, 3n..4n-1, 4n..5n-1). 3. Указатели массива указателей, указывают на адреса ячеек двумерного массива с интервалами n..2n-1, 2n..3n-1, 3n..4n-1, 4n..5n-1. Программа делает то что я думаю? Спасибо. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я не большой спец по Сям, но по-моему твой пример делает что-то не совсем то.
Т.е. само выделение памяти как по мне... мягко говоря нестандартное. Я как-то больше предпочитаю свой метод, выложенный выше ![]()
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Stilet спасибо за ссылку, все предельно понятно расписано. Пригодиться.
![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Пожалуйста )
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.08.2012
Сообщений: 39
|
![]()
Тут ошибка была (завтыкал и написал i+1*k вот так правильно n*k):
Код:
|
![]() |
![]() |
![]() |
#8 | |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]() Цитата:
![]() ![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.08.2012
Сообщений: 39
|
![]()
А какие еще есть? Подскажи пожалуйста.
Ведь при компиляции и линковке ошибок и предупреждений нету. Значит какие-то логические ошибки... int **m = (int**)malloc(n*sizeof(int*) + sizeof(int)*n*n); <-- Тут я создаю массив указателей и еще просто 1 длинный массив. |*|*|*|*|&|&|&|&|&|&|&|&|&|&|&|&|&| &|&|&| Я хотел чтобы было вот так: for (un_int i = n-1, k = 1; i+1 < n+n; ++i, ++k) m[i+1-n] = (int*)&m[n*k]; // Передаем адрес ячейки указателю с интервалом "n" |*| -> |&|&|&|&| 0 ----- 4 5 6 7 |*| -> |&|&|&|&| 1 ----- 8 9 10 11 |*| -> |&|&|&|&| 2 ----- 12 13 14 15 |*| -> |&|&|&|&| 3 ----- 16 17 18 19 И программа выводит все точно как по плану: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 И никак не могу понять, есть тут ошибки или нету... Последний раз редактировалось Lifeda92; 26.08.2014 в 15:28. |
![]() |
![]() |
![]() |
#10 | |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]() Цитата:
Особенно вот это здорово Код:
![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 26.08.2014 в 15:30. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по двумерному массиву | EdvardAvd | Помощь студентам | 16 | 26.11.2013 17:24 |
как пройти по двумерному массиву | realgleb | Общие вопросы C/C++ | 9 | 10.05.2012 21:36 |
процедура к двумерному массиву | Alenaa | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.11.2011 19:34 |
Поиск числа по двумерному массиву. | Ibanez Wizard | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 31.03.2011 13:52 |
помогите решить задачу по двумерному массиву | Kain | Помощь студентам | 3 | 10.11.2008 17:34 |