![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.04.2010
Сообщений: 21
|
![]() Код:
Последний раз редактировалось ACE Valery; 30.03.2012 в 13:39. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Проблема - в ф-ии format(). На "возвращаемую" ею после вызова строку посмотрите...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 25.04.2010
Сообщений: 21
|
![]()
С функцией format() всё ОК. Проблему решил, просто перепутал размерности при обращении к массивам в функциях prnt_arr(), read_arr() и естественно в функции multiplication() Вот, кому надо, нормальный код:
Код:
Последний раз редактировалось nartov55; 30.03.2012 в 15:29. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Блажен, кто верует!.. Что с этими пятью байтами, выделяемыми в теле ф-ии под локальный массив c[], после выхода из ф-ии происходит, не подскажете?.. Трансляторы "Студий", кстати, на return c; кричат:
Код:
Э-э... Простите... Код:
Последний раз редактировалось Vago; 30.03.2012 в 19:38. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.04.2010
Сообщений: 21
|
![]()
Да, согласен. Были косяки, особенно с тем, что я возвращал в функции format() адрес не закрепленной за массивом области памяти. А memcpy() всё-же лучше заменить на memcpy_s(), хотя количество выделенной памяти под B[] и C[] было равно.
Код:
Последний раз редактировалось nartov55; 31.03.2012 в 18:43. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
- не боимся работать с двумерным массивом, как с одномерным - это требует определённого "закапывания" в архитектуру, что есть редкость среди нынешних студентов, привыкших не к книгам а к "Гугль в помощь!". Уже хорошо!
![]() - индексы сами исправили. ЗдОрово!... ![]() - про судьбу локальных переменных после завершения работы функции больше не забываем... ![]() - громадный массив на стек уже не пихаем. ![]() И на фоне всего этого безусловного, без иронии, прогресса - memcpy() ! Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 25.04.2010
Сообщений: 21
|
![]()
То есть лучше memcpy() не использовать ? Просто я подумал, зачем выделять память под ещё один массив, когда можно просто скопировать временный массив в уже имеющийся.
![]() Последний раз редактировалось nartov55; 01.04.2012 в 07:19. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
В этой задаче - безусловно НЕТ! Во первых, это чревато. Пока Вы - на уровне учебного задания, и у Вас выделены статические "квадратные" массивы одинаковой размерности и под A[], и под B[], Вы этого не заметите. Но представьте теперь, что Вы решили приблизить задачу к реальной жизни и выделяете под массивы ровно столько, сколько нужно, динамически:
Код:
А теперь вводим n = 1, m = 2, k = 3. Какого размера получится матрица C[]?.. А сколько у нас выделено под A[]?.. ![]() Ну а второе - это быстродействие. В реальной жизни к алгоритмам подобного типа предъявляется одно требование: они должны считать быстро! А заведение буфера и последующее копирование из этого буфера этому самому "быстро" как-то не способствуют... ![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 25.04.2010
Сообщений: 21
|
![]()
Да уж) Спасибо за объяснения
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Умножение матриц | BDA | Общие вопросы C/C++ | 2 | 20.11.2011 01:06 |
умножение матриц | Rusya_00 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 06.01.2011 23:51 |
умножение матриц | Mila Volkova | Помощь студентам | 3 | 25.12.2010 14:17 |
Умножение матриц) | Guzal | Общие вопросы C/C++ | 1 | 26.10.2010 21:56 |
Умножение матриц | Alyonka_v | Помощь студентам | 2 | 18.08.2009 21:51 |