Rückgabe eines (mehrdimensionalen) arrays aus einer funktion.
-
Salute, ich hab eine Funktion (nehmen wir ma ein billige)
int hello(void); int hello(void) { int testArray[2][2] = { { 1,2 }, { 3,4 } }; cout << testArray[1][1]; ??return testArray??; }
in der ich ein mehrdimensionales array bestimme. Ich will aber nicht nur Teilelemente, sondern das gesamte Array zurückgeben, wie mache ich das ? Gillt auch für arrays allgemein und wenns gerade dabei seid und das vielleicht AUCH noch wisst: Wie mache ich nen pointer auf nen mehrdimensionales array ?
Wie immer danke schon mal.
-
Hi!
Ein Pointer auf ein mehrdimensionales Array entspricht so vielen Zeigern auf Zeiger wie dimensionen vorhanden (hoffe das war verständlich):
int** arr = new int[5][6]; delete[] arr;
Code-Hacker
-
Code-Hacker schrieb:
Hi!
int** arr = new int[5][6]; delete[] arr;
So erstellt man in C++ allerdings kein mehrdimensionales Array! Siehe FAQ wie man es richtig macht.
-
seth`- schrieb:
in der ich ein mehrdimensionales array bestimme. Ich will aber nicht nur Teilelemente, sondern das gesamte Array zurückgeben, wie mache ich das ?
Wenn die Dimensionen feststehen, bietet sich ein struct an:
struct X { int array[2][2]; };
Damit erübrigt sich auch das Zeigerproblem.
Ansonsten schreibe ich für wenige Dimensionen auch gerne mal kurz eine Klasse. Zeigerlawinen sind so anstrengend.
-
Aber, und das ist die Frage: Die Klasse an sich selbst ist ja nicht lokal, doch die einzelnen Klassenmember gelten doch nur für diese eine Funktion, oder ? Dazu kommt noch, dass ich Dateien übergreifend arbeite. (mit header Dateien)