|
5 / 5 / 3
Регистрация: 25.11.2010
Сообщений: 23
|
||||||
Как вернуть массив?03.06.2012, 08:14. Показов 3100. Ответов 10
Метки нет (Все метки)
Как правильно вернуть локальный массив (вместе с размером) из одной функции в main-функцию и потом передать его в третью функцию?
1) Передача массива в функцию по ссылке или по указателю - как сейчас, нужно ли делать static функцию first? 2) Стандартный контейнер, например vector - не подходит, нужен исходный неотсортированный массив. 3) Умный указатель - не подходит. 4) Агрегация массива в класс-обработчик - не хочется заворачивать. 5) Использовать структуру - не хочется заворачивать. 6) Др. варианты?
0
|
||||||
| 03.06.2012, 08:14 | |
|
Ответы с готовыми решениями:
10
Как вернуть массив в данной функции ? Или как записать массив в переменную ? Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? Как вернуть массив |
|
Супер-модератор
|
|
| 03.06.2012, 09:01 | |
|
Так чем плох возврат указателя? Правда динамический массив не назовешь локальным. Да думаю, что локальный (т.е. размещенный в стеке функции) массив вряд ли можно передать. После выхода из функции эта память будет считаться свободной.
0
|
|
|
5 / 5 / 3
Регистрация: 25.11.2010
Сообщений: 23
|
|
| 03.06.2012, 09:20 [ТС] | |
|
Верно ли, если массив объявлен в функции, значит он локальный, будь он динамическим или статическим?
Тогда, если сделать функцию статической, то при выходе из неё память не будет освобождена и массив можно спокойно передавать по ссылке. Только это потоконебезопасно, но моя программа однопоточная. Хочется найти вариант на все случаи жизни, без создания объектов и т.д.
0
|
|
|
Супер-модератор
|
||||||
| 03.06.2012, 11:26 | ||||||
|
Дело не в том, где массив объявлен, а в том, где он хранится. Если в куче - Бога ради! - создавайте в функции, передавайте указатель и используйте, где хотите! Но если он хранится в стеке функции:
"Хочется найти вариант на все случаи жизни, без создания объектов" - осторожно скажу: это вряд ли получится...
0
|
||||||
|
5 / 5 / 3
Регистрация: 25.11.2010
Сообщений: 23
|
||
| 03.06.2012, 11:39 [ТС] | ||
|
Т.е. динамические массивы всегда хранятся в куче?
0
|
||
|
21 / 21 / 4
Регистрация: 18.04.2010
Сообщений: 87
|
|||||||
| 03.06.2012, 12:35 | |||||||
1
|
|||||||
|
34 / 33 / 6
Регистрация: 13.12.2011
Сообщений: 107
|
||||||||
| 03.06.2012, 12:35 | ||||||||
0
|
||||||||
|
21 / 21 / 4
Регистрация: 18.04.2010
Сообщений: 87
|
||
| 03.06.2012, 12:38 | ||
|
Если вы ставили вопрос иначе, есть ли какие нибудь способы вернуть массив, созданный без использования динамической памяти, то такого способа нет.
Добавлено через 1 минуту
0
|
||
|
5 / 5 / 3
Регистрация: 25.11.2010
Сообщений: 23
|
|
| 03.06.2012, 13:11 [ТС] | |
|
А как ещё можно передать динамический массив из функции?
0
|
|
|
21 / 21 / 4
Регистрация: 18.04.2010
Сообщений: 87
|
|
| 03.06.2012, 13:39 | |
|
Ну ваш вариант самый нормальный. Если есть еще какие варианты, то все равно неудачные.
0
|
|
| 03.06.2012, 13:39 | |
|
Помогаю со студенческими работами здесь
11
Как вернуть массив? Как вернуть массив? Как вернуть массив? Как вернуть массив из функции? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|