|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
Возвращение массива из функции23.08.2009, 09:20. Показов 53239. Ответов 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 | |
|
Возвращение многомерного массива из функции Возвращение массива из функции-шаблона Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|