К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

C++: функция, возвращающая многомерное значение

Гость
0 - 28.09.2014 - 05:52
Делаю первые шаги в освоении С++.
Нужно, чтобы возвращаемое значение функции было массивом. Как это сделать (если вообще возможно)?
Иными словами, переведите, пожалуйста, с паскаля на С++:

Type aaa : array[1..20] of integer;

Function fff(...) : aaa;
Begin
...
fff[1]:=a; fff[2]:=b; ...
End;



Гость
1 - 28.09.2014 - 15:59
Возможно, но лучше создавать массив в основном коде, и передавать в функцию как указатель. С++ - это не C#, и даже не Паскаль. С памятью лучше не играться.

Если же нужно принципиально...

#include <stdio.h>
#include <conio.h>

int * createArray(int sz) **
int * r = new int[sz] ;
for (int i=0; i<sz; i++) r[i]=i*i ;
return r ;
**


int main() **

const int N = 10 ;
int * arr = createArray(N) ;

for (int i=0; i<N; i++)
printf("arr[%d]=%d\n",i,arr[i]) ;

delete arr ;

getch() ;
return 0 ;

**
Гость
2 - 28.09.2014 - 16:00
Двойные звездочки - это открывающая фигурная скобка. Дурной фильтр.
Гость
3 - 08.10.2014 - 23:55
0-Дюша >
1. Зачем тебе С++? Недоязык, говорят. :)
2. std::vector для начала спасет отца русской демократии. :)
Гость
4 - 09.10.2014 - 00:03
#include <vector>

typedef std::vector<int> IntArray;

IntArray MyMegaFunction()
**
IntArray result;
result.push_back(0);
result.push_back(1);
...
return result;
**

int main(int argc, char** argv)
**
IntArray array = MyMegaFunction();
// TODO something
return 0;
**
Гость
5 - 09.10.2014 - 00:04
Но, строго говоря, vector - это динамический массив. Поэтому можно посмотреть в сторону std::array (если компилятор поддерживает C++11).
Гость
6 - 22.10.2014 - 02:57
Цитата:
Сообщение от Ахелой Посмотреть сообщение
0-Дюша &gt; 1. Зачем тебе С++? Недоязык, говорят. :) 2. std::vector для начала спасет отца русской демократии. :)
Это говорят недопрограммисты.
Дюша - по мне так самый лучший вариант, при отсутствии оберток, это создать свой класс массива. Который будет и память выбелять и освобождать. Да и в дальнейшем много полезного поимеешь.


К списку вопросов






Copyright ©, Все права защищены