![]() |
|
Модераторы: bsa |
![]()
|
|
| Alexandr507 |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: -1 Всего: -1 |
Здравствуйте, в коде возникла проблема повторения кода.
этот код встречается три раза в программе, и абсолютно одинаковый, за исключением 10 строчки в первом случае
во втором
в третьем
Очень некрасиво. В раздумиях над тем как избавится от повторения кода и сделать из трех почти одинаковых циклов - один, возникла мысль поместить весь цикл в функцию с возвращающим типом void. а каждый раз разную строчку номер 10 заменить на предварительно объявленные в main два указателя на тип char , которым там же в main будут присвоены messag[y][x] и slovo[a] соотвественно ,затем когда будет произведен вызов функции второй раз, переприсвоенны для messag_2[y][x] и messag[x][y] и соотвественно третий раз - messag_2[x][y] и messag_2[y][x]. передавать в функцию указатели по адресу, что бы функция получала доступ непосредственно к этим массивам.
но наткнулся на проблему. в цикле первоначально все закрученно вокруг индексов 'x', 'y' и 'a'. в переделанном варианте указатели без индексов, и черт знает что куда будет присваиваться. вообщем видимо такой способ не прокатывает. подскажите что можно сделать. С уважением. |
||||||||||
|
|||||||||||
| mes |
|
||||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
это чтоб остальных запутать ?
ну а это нагляднее/логичнее в двухуровневом for (один for для x, другой для y) Это сообщение отредактировал(а) mes - 5.11.2009, 13:54 |
||||||||
|
|||||||||
| Alexandr507 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: -1 Всего: -1 |
По-моему не суть, проблема что так, что эдак остается. Конечно так лучше, нагляднее, но в данном примере меня другое интересует
Это сообщение отредактировал(а) Alexandr507 - 5.11.2009, 14:20 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
messag и другие это статические двумерные массивы или динамические ? Добавлено через 3 минуты и 47 секунд P.S. на всякий случай замечу, если массивы у Вас типа char, то этой строчкой Вы копируете не данные, а указатель.. |
|||
|
||||
| Alexandr507 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: -1 Всего: -1 |
все массивы динамические двумерные, только slovo[] одномерный, но тоже динамический
Это сообщение отредактировал(а) Alexandr507 - 5.11.2009, 14:49 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
(чтоб развеять сомнения) приведите определения этих двух массивов (messag и slovo). |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
может так сделать?
|
|||
|
||||
| Alexandr507 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: -1 Всего: -1 |
Ошибся ошибся)
Добавлено через 14 минут и 48 секунд bsa, для первого вызова функции funk , куда под указателями *ptr1 и *ptr2 будут передаваться messag[y][x] и slovo[a], ваш код конечно подойдет, но для второго , куда должны передаваться messag_2[x][y] и messag_2[y][x] , а также messag_2[y][x] и messag[x][y] соотвественно для третьего вызова, не прокатит. ведь второй параметр в функции funk является одномерным массивом. даже не знаю как быть, столько лишнего по большому счету кода. |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
может для начала приведете или словами опишите задачу по распределению одного по массива по другому.. (Напрягаться и догадываться мне сегодня лень Это сообщение отредактировал(а) mes - 5.11.2009, 18:46 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Передавайте функции для присваивания:
|
|||
|
||||
| Alexandr507 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: -1 Всего: -1 |
xvr, спасибо, то что надо
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |