Array übergeben?
-
Gibt es eine Möglichkeit, außer per Call by Reference oder dynamischer Allokierung, eine Funktion ein Array zurückgeben zu lassen. Ich habe bisher nur diese zwei Möglichkeiten entdeckt. Die dritte, die man sich so auf die Schnelle denken könnte, scheitert ja daran, dass ein statisches Array der Funktion zerstört wird und ein darauf verweisender Pointer, den man zurückgeben könnte, daher zwecklos ist.
Es wird in meinem Programm nämlich langsam sehr unpraktisch, immer erst ein gesondertes Array zu erzeugen und an die Funktion zu übergeben. Mindestens genauso umpraktisch wäre es aber wohl auch, nach jedem Funktionsaufruf delete[] durchführen zu müssen.
Ist da was bekannt?
-
Nimm die STL-Container, dann geht es problemlos:
vector<int> create_array(int n) { // Array mit Zahlen befüllen. vector<int> ret; for (int i = 0; i < n; ++i) ret.push_back(i); return ret; } // ... vector<int> arr = create_array(10); // Ausgabe copy(arr.begin(), arr.end(), ostream_iterator<int>(cout, " "));