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
| Цитата:
Дюша - по мне так самый лучший вариант, при отсутствии оберток, это создать свой класс массива. Который будет и память выбелять и освобождать. Да и в дальнейшем много полезного поимеешь. | |
| Интернет-форум Краснодарского края и Краснодара |