1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
|
|
1 | |
Объявить прототип функции f1 с 2 аргументами-строками и возвращаемым результатом в виде литерного массива18.01.2009, 21:18. Показов 2457. Ответов 19
Метки нет (Все метки)
Здрасте всем), есть такая задачка: Объявить прототип функции f1 с 2 аргументами-строками и возвращаемым результатом в виде литерного массива.
Вот мои варианты: char *f1(char *str1, char *str2); char (*f1(char *str1, char *str2))[]; Оба они не подходят, мож подскажет кто, что знает?
0
|
18.01.2009, 21:18 | |
Ответы с готовыми решениями:
19
Как объявить и использовать функцию с аргументом и возвращаемым значением в виде массивов структур? Как на фасме объявить прототип пользовательской функции Список методов произвольного класса, с параметрами и возвращаемым результатом на основании делегата Трудности с полученным результатом в виде функции х(у) |
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
19.01.2009, 01:17 | 3 |
массив передать нельзя, можно лишь передать адрес его самого первого элемента (нулевого), поэтому и в функцию и из функции возвращается просто указатель (а в нём уже хранится адрес этого нулевого элемента)
чтобы вернуть из функции символьный массив нужно либо записать его в статическую область памяти, а потом вернуть адрес его первого элемента, либо создать его в динамической памяти но потом её обязательно нужно освобождать, иначе прога будет занимать всё больше и больше памяти по мере роста
0
|
4 / 4 / 0
Регистрация: 18.01.2009
Сообщений: 21
|
|
19.01.2009, 16:30 | 4 |
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||
19.01.2009, 22:15 | 7 | ||||||||||
Добавлено через 3 минуты 44 секунды
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
19.01.2009, 22:33 | 9 |
на макросы можно перевести, получится как бы там где надо можно будет легко любой массив упаковать передать вернуть, если так не сделано изначально значит так надо, передавать массивы == создавать их копии, передавать указатель на начало массива а не весь массив просто быстрее и легче для программы
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
19.01.2009, 22:42 | 10 |
В класс можно затолкать, конструктор копирования его переписать, чтобы при передачи по значению все тип-топ было...и еще куча-куча различных способов...
Вопрос в том, что нужно тому, кто это задал.
0
|
181 / 33 / 7
Регистрация: 29.10.2008
Сообщений: 283
|
|
20.01.2009, 09:37 | 12 |
разве нельзя в функцию передавать массив по значению?!!!
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
20.01.2009, 11:49 | 13 | |||||
Код
[guest@station tmp]$ ./test 1 0 7 1 5 7 [guest@station tmp]$
0
|
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
|
|
21.01.2009, 17:48 [ТС] | 14 |
спасибо всем за дискуссию, я уже и сам нашел правильное решение!!
accept структуры мне не нужны, нужна была всего лишь одна строчка
0
|
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
|
|
22.01.2009, 06:24 [ТС] | 18 |
char *f1(char str1[],char str2[]); - вот это и все что мне нужно было.
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
22.01.2009, 11:07 | 20 |
гы-гы-гы. Этот способ, все равно передаст указатель на первый элемент, но никак не сам массив. И вернет тоже указатель, как уже сказал accept. Вас надули
0
|
22.01.2009, 11:07 | |
Помогаю со студенческими работами здесь
20
Делегат для методов с двумя аргументами и целочисленным результатом Прототип с символьным указателем (объявить) независимо управлять типом входных данных массива для определения сред. ариф. и возвращаемым значением функции Вычислить гипотенузы используя функцию, объявить прототип Прототип функции для обработки массива Передача массива char в прототип функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |