|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
Возвращение массива из функции23.08.2009, 09:20. Показов 53103. Ответов 37
Метки нет (Все метки)
Нужно вернуть массив типа int из функции
Как я понимаю сделать это можно только с помощью указателей У меня это получилось но так как везде пишут что указатели очень сложная тема решил узнать правильно ли я все сделал
1)Обязательно ли присваивать значения каждому элементу массива который передаеться в функцию и потом изменяеться с помощью указателей ? 2) Как я понимаю ссылки вообще никак нельзя использовать для возвращения массива из функции ?
2
|
||||||
| 23.08.2009, 09:20 | |
|
Ответы с готовыми решениями:
37
Возвращение массива из функции Возвращение массива из функции |
|
|
|||||||||||||
| 27.08.2009, 00:02 | |||||||||||||
Бывают такие:
0
|
|||||||||||||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||
| 27.08.2009, 00:03 | ||
|
Rififi, ты видишь что человек только учит С++? Скажи мне? Ты начинал свое обучение с шаблонов функций?
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 27.08.2009, 00:11 | |
|
Monte-Cristo,
Rififi, ты видишь что человек только учит С++? собстна, Evg всё уже сказал - это был ответ на "других не бывает" Бывают вот такие: int a[n]; Только в C99, но в принципе ты прав. Бывают такие: int *a = malloc (...); А это и не массив ни разу, а указатель на целое. Скажи мне? Ты начинал свое обучение с шаблонов функций? Неа. С рассматривания картинок. DDD
0
|
|
|
|
||
| 27.08.2009, 00:14 | ||
|
0
|
||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||
| 27.08.2009, 00:21 | |||
|
0
|
|||
| 27.08.2009, 00:21 | ||
|
а всякие "штучки" оставьте на потом, этих штучек - пруд пруди, и никто не знает все. чем меньше вы их будете применять без меры, тем лучше будет ваша жизнь.
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 27.08.2009, 00:33 | |
|
Evg,
Rififi, Monte-Cristo, а покажите, как этой хреновиной поьзоваться. А то я в Си++ не особо в простейшем случае, чтобы просто подсчитать длинну статического массива (и только его, т.к. на указателях эта функция выдаст ошибку времени компиляции) int arr[10]; const size_t N = array_count(arr); // N = 10 но вот такая конструкция уже не пройдёт: int arr2[array_size(arr)]; ибо array_size - это не константа времени компиляции чтобы заставить строчку с arr2 компилироваться, нужно преобразовать исходный массив в массив однобайтовых элементов (и тогда его размер == его sizeof), а также учесть тот замечательный факт, что sizeof не выполняет вызов функции - размер вычисляется в compile-time. тогда: template <typename T, const size_t N> char (&array_size(const T (&)[N]))[N]; int arr[sizeof(array_size(arr))]; выглядит страшновато, ну а кому щас легко? :green:
0
|
|
|
|
||
| 27.08.2009, 08:45 | ||
|
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 27.08.2009, 10:39 | |
|
esli by eto esh4e i kompirirovalos' - zeny b emu ne bylo
esli by vse polzovalis' normalnymi kompilyatorami a ne kakimi-to krivul'kami, bylo by esche kruche.
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 27.08.2009, 11:02 | |
|
Evg,
А главное - нафига вот так всё сложно. Сделать макрос через sizoef'ы и не париться. Это только для тех, кто предпочитает создавать более безопасный код. для каких-нибудь пользователей продукции Борланд (aka формошлёпщиков) можно действительно не париться
0
|
|
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
|
| 27.08.2009, 11:07 | |
|
Если нельзя опеределить размер динамического массива, то как же delete [] узнает сколько элементов удалять?
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 27.08.2009, 11:10 | |
|
HIMen,
потому что оно использует свои внутренние механизны, относящиеся к контретной реализации конкретного менеджнра памяти, недоступные обычному пользователю.
0
|
|
|
|
|||
| 27.08.2009, 11:11 | |||
|
Добавлено через 1 минуту
0
|
|||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 27.08.2009, 11:16 | |
|
Evg,
Чем же такой вариант более безопасен, чем вариант с sizeof? а вот чем: int* arr = new int[10](); const size_t N1 = sizeof(arr) / sizeof(arr[0]); const size_t N2 = sizeof(array_size(arr)); второе - не скомпилируется.
1
|
|
|
|
|
| 27.08.2009, 11:17 | |
|
Чорт, об этом не подумал
![]() Хотя тут скорее из разряда кривые руки, но безопаснее - факт
0
|
|
| 27.08.2009, 11:17 | |
|
Возвращение многомерного массива из функции Возвращение массива из функции-шаблона Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|