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)


Anmelden zum Antworten