Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
 Аватар для OdessaNA
19 / 19 / 6
Регистрация: 10.01.2011
Сообщений: 241

Возвращаемое значение функции - массив

06.08.2012, 23:57. Показов 5468. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, Друзья.
Скажите пожалуйста - из функции одномерный массив можно передать в функцию main() или нет? Если да - как.
За ранее благодарю Вас.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2012, 23:57
Ответы с готовыми решениями:

Возвращаемое значение функции - указатель на массив. КАК это записать?
Функция заполняет массив. например (кусок проги) .... int mas; int fun() { заполнила массив

Возвращаемое значение функции
void tokenize(string str_translate){ char char_translate; strcpy(char_translate, str_translate.c_str()); // string to char* ...

Возвращаемое значение функции
Здравствуйте Я тут новенький. Очень трудно у вас проходить регистрацию. У меня вопрос по С++ Компилятор: Code Blocks ...

7
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.08.2012, 00:05
Можно предать указатель на массив и его размер....
C++
1
void func(int a[],const size_t &size){ /*Do Something*/};
C++
1
2
3
4
const size_t size=10;
int A[size];
 
func(A,size);
Если имеется ввиду возврат, то суть таже возвращать указатель...
C++
1
2
3
4
5
int*  func(int a[],size_t &size)
{
 /*Do Something*/ 
return a; 
};
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
07.08.2012, 00:17
Цитата Сообщение от OdessaNA Посмотреть сообщение
Здравствуйте, Друзья.
Скажите пожалуйста - из функции одномерный массив можно передать в функцию main() или нет? Если да - как.
За ранее благодарю Вас.
зачем нужно скажи, тогда можно дельный совет дать. а так - просто куски *овно-кода предлоижть пожевать.
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
07.08.2012, 00:47
Цитата Сообщение от OdessaNA Посмотреть сообщение
Здравствуйте, Друзья.
Скажите пожалуйста - из функции одномерный массив можно передать в функцию main() или нет? Если да - как.
За ранее благодарю Вас.
std::vector — вот так.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
07.08.2012, 02:45
OdessaNA, можно. Если уиндоус, то обязательно не отладочная компиляция.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
#define ARRAY_LEN   ( 10 )
 
void* foo( const unsigned size, const unsigned nums ) {
    unsigned arr[ nums ];
 
    return ( void* ) &arr[ 0 ];
}
 
int main() {
 
    unsigned *p = ( unsigned* ) foo( sizeof( unsigned ), ARRAY_LEN );
    unsigned i = 0;
 
    while ( i < ARRAY_LEN ) {
        *p = i;
        ++p, ++i;
    }
 
    --p;
    while ( i-- )
        std::cout << *p-- << ' ';
        std::cout << std::endl;
 
    return 0;
}
0
07.08.2012, 02:56

Не по теме:

alkagolik, это что вообще такое? похоже на VLA но как оно живет после выхода из функции?

0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
07.08.2012, 03:36
Jupiter, да сам не знаю что это, обнаружил давно. Время жизни массивов, объявленных в функциях равно времени жизни программы. При неоднократных вызовах функции виртуальные адреса не меняются, индексная адресация при обращении не подходит. VLA???

Добавлено через 17 минут
да. vla, на новых компиляторах не пойдет.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
07.08.2012, 08:35
Цитата Сообщение от alkagolik Посмотреть сообщение
Jupiter, да сам не знаю что это, обнаружил давно. Время жизни массивов, объявленных в функциях равно времени жизни программы. При неоднократных вызовах функции виртуальные адреса не меняются, индексная адресация при обращении не подходит
Разве такое поведение в стандарте описано? выделенная память в стеке при выходе из области видимости очищается. Может быть это фишка конкретного компилятора? Но определенно так делать не стоит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.08.2012, 08:35
Помогаю со студенческими работами здесь

Возвращаемое значение функции
array&amp; array::operator = (const array &amp;q) { if (this != &amp;q) { delete s; s=new int; for(len=0;len&lt;q.len;s=q.s,len++) ...

Возвращаемое значение функции
Добрый день. Есть функция: TextString InfoBox::name(unsigned int i) const { if(i&lt;this-&gt;count()) { TextLabel...

Возвращаемое значение функции
Здарвствуйте. Моя задача состоит в написании следующей программы: вычислить среднее арифметическое значение элементов матрицы W(L,L),...

Неправильное возвращаемое значение функции
Всем привет! Начал программировать на C++ по книге Васильева. Так вот, в первой главе в задаче 15, формулируемой следующим образом:...

Возвращаемое значение virtual функции
В инструкции указанно следующее virtual int getHost() создаю у себя в классе int getHost(){ return ?? }


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru