![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mefager |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
Дело в том, что у меня есть часть кода(код рабочий), но в нём нет главного. Помогите, кто чем может.
Вот то, что есть у меня.
Если всё сделать правильно, то программа должна вывести:
|
||||
|
|||||
triclosan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 2 Всего: 12 |
res - массив указателей на функцию должен быть по вашему?
|
|||
|
||||
Estranged |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: нет Всего: 3 |
Массивы функции возвращать не могут. Только если указатель возвратить.
char ** res ; ... delete [] res; char ** foo (int num) { if (num > 0) { char ** ch = new char *[num]; ch [0] = "string #1"; ch [1] = "string #2"; ch [2] = "string #3"; ch [3] = "string #4"; ch [4] = "string #5"; return ch; }else return NULL; } |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 3 Всего: 13 |
Estranged,
Ваш код будет работать так как нужно, только если num = 5... |
|||
|
||||
mefager |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
triclosan, если честно, то я не знаю кем он должен быть. ![]() Вот удалось добыть уточняющие данные(препод под пытками признался ![]()
|
|||
|
||||
Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
ну это уже не мало... ![]()
а вот это существенное дополнение... ![]() -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
mefager, удобнее всего, в функцию получить ссылку на пустой вектор строк, а функция заполнить и заодно может вернуть итератор vector<>.begin() ;
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
triclosan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 2 Всего: 12 |
||||
|
||||
mefager |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
Alexeis, triclosan всё дело в том, что мне ничего такого выдумывать не нужно. Задание заключается в том, что бы написать недостающий код в работающей проге. То что она работает я видел самолично. Просто препод удалил из кода ключевые моменты, для того что бы мы смогли сами что нибуть придумать. Но пока что не очень-то получается.
![]() Добавлено через 2 минуты и 1 секунду и я знаю что там никаких векторов и тем паче итераторов никаких нет. |
|||
|
||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Я имел ввиду и то и другое сделать. Итератор вернуть, чтобы (возможно) сократить выражение.
1) Передать по ссылке в функцию переменную в которую будет занесено количество строк. 2) Выделять память всегда на n+1 строк и вместо последней строки записывать число-терминатор, например NULL. В этом случае перебираем строки пока не дойдет до нуля. Хуже если нельзя обойтись без последовательного перебора и иметь число строк в качестве переменной. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
mefager |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
Так передается же, вот:
num это и есть количество строк. А по ссылке зачем передавать? а это вобще ничего непонял. Это для меня темный лес. ![]() |
||||
|
|||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Что-то многовато, вроде. У меня всего две получилось. ![]() -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
mefager, да чет я протупил, не понял для чего память выделять в функции, тогда как нужный размер известен еще до вызова.
![]()
Это сообщение отредактировал(а) Alexeis - 13.12.2010, 12:01 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
mefager |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
Dov, Alexeis огромное спасибо что помогли.
У Alexeis`а практически то же решение что прислал мне Dov, только с typedef`ом ![]() Вот его решение.
|
|||
|
||||
Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Так я тоже могу typedef прикрутить. Я ж не знал, что так нужно... Вот, пожалуйста:
Даже два, на всякий случай. ![]() -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |