Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.89
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
#1

Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? - C++

05.08.2010, 18:21. Просмотров 3438. Ответов 6
Метки нет (Все метки)

Почему функция не может вернуть массив, но может вернуть структуру содержащую массив? Согласитесь что это некоторое несовершенство языка...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2010, 18:21     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Посмотрите здесь:

Что может вернуть функция? - C++
Я знаю что функция может вернуть значение, указатель и структуру, и составил примеры этих функций - это что-то типа конспекта, но мне...

Вернуть массив из класса - C++
#include <iostream> using namespace std; class gueue { public: int out(); }; int gueue::out() {

Как вернуть массив - C++
Можно ли вернуть массив через возвращаемое значение? Если нет, то как можно сделать вывод массива в main?

Как вернуть массив? - C++
Как вернуть массив из функции и узнать его размер?

Вернуть массив из функции - C++
Допустим есть класс Test: class Test { private: float point; };

Вернуть массив из функции - C++
Помогите пожалуйста, не получается вернуть массив #include <iostream> using namespace std; int input (int*array2) { int n; ...

Как вернуть массив? - C++
Нужно вернуть массив из функции, как это сделать? #include "stdafx.h" #include <iostream> #include <Windows.h> #include <time.h> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
05.08.2010, 18:26     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? #2
Цитата Сообщение от AKE Посмотреть сообщение
Согласитесь что это некоторое несовершенство языка...
кто ж додумается массив возвращать и зачем вообще, указатели же есть.
Crudelis
Шаровик затейник
672 / 414 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
05.08.2010, 18:32     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? #3
с помощью указателей можно вернуть массив, как писали выше, в чем несовершенство и где...
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
05.08.2010, 18:32     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? #4
Массивы в Си реализованы через указатели, поэтому можно возвратить массив через указатель:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int* newArr(size_t sz)
{
    return new int[sz];
}
 
int main()
{
    const size_t sz =  6;
    int* iarr = newArr(sz);
    for(size_t i = 0; i < sz; ++i)
    {
        iarr[i] = i * 2 + 1;
        std::cout << iarr[i] << '\t';
    }
    std::cout << std::endl;
    delete[] iarr;
    system("pause");
    return EXIT_FAILURE;
}
jonson
232 / 205 / 61
Регистрация: 18.03.2010
Сообщений: 749
05.08.2010, 20:56     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? #5
Несовершенством было бы если функция возвращала бы массив целиком.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.08.2010, 03:36     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? #6
Цитата Сообщение от AKE
Почему функция не может вернуть массив, но может вернуть структуру содержащую массив?
можно вернуть структуру содержащую два массива и это не значит, что функция должна уметь возвращать два массива
C
1
2
3
4
struct x {
    struct { int a, b, c, d[3]; } s[10];
    int n;
};
C
1
struct x func(void);
Цитата Сообщение от AKE
Согласитесь что это некоторое несовершенство языка...
как видишь, в структуру можно запихать практически всё и в любом виде
а что касается того, почему нельзя возвратить массив, возможно это связано с памятью
(я имею в виду, создать массив в функции и возвратить его содержимое, типа int n[2][3] = f(void); )
по крайней мере в питоне так, когда создаётся копия массива (списка, кортежа, строки), расходуется ещё столько же памяти, сколько он занимает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2010, 09:13     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Еще ссылки по теме:

Как вернуть массив? - C++
Функция вроде как работает. Но функция &quot;printMass(mas, l);&quot; дожа выводить этот новый массив, она тоже работает но после &quot;return mas;&quot; в...

Как вернуть массив? - C++
Как правильно вернуть локальный массив (вместе с размером) из одной функции в main-функцию и потом передать его в третью функцию? int*...

Как вернуть массив? - C++
Есть программа #include &quot;stdafx.h&quot; int fun1(int mas,int r) { int i; for (i=0;i&lt;r;i++) { mas=i;

Как вернуть массив из функции? - C++
Please! #include &lt;iostream&gt; using namespace std; int _plus1 (int array ) { for (int i = 0; i &lt; 5; i++){ array...

Как вернуть массив из функции? - C++
у меня есть две функции: Одна должна возвращать три числа, а вторая двумерный массив 10Х10; Как это провернуть?


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17549 / 5787 / 370
Регистрация: 30.03.2009
Сообщений: 15,938
Записей в блоге: 26
06.08.2010, 09:13     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? #7
Цитата Сообщение от AKE Посмотреть сообщение
Почему функция не может вернуть массив, но может вернуть структуру содержащую массив? Согласитесь что это некоторое несовершенство языка...
Вот тут я немного пояснил в третьем абзаце
http://www.cyberforum.ru/holywars/th...tml#post131080
Где-то я более подробно расписывал, но никак найти не могу
Yandex
Объявления
06.08.2010, 09:13     Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru