Mehrdimensionales (string-)Array an Funktion übergeben



  • Hi!

    Ich habe eine Funktion geschrieben, welche ein Mehrdimensionales String-Array mit Informationen füllen soll.

    Mit Eindimensionalen Arrays hatte ich da keine Probleme - einfach den Pointer übergeben. Mit Mehrdimensionalen (in meinem Falle Zweidimensional) funktioniert das allerdings nicht.

    Wie kann ich ein Mehrdimensionales Array an eine Funktion übergeben?



  • #include <iostream>
    #include <string>
    using namespace std;
    
    void fill_a(string* pS, int x, int y) { // Zeiger auf das erste Element
    
       cout << "x: " << x << " y: " << y << endl;
       // füllen
       // ...
    }
    
    // erzeugt für verschiedene Arraygrößen auch verschieden Funktionen
    template<int x, int y>
    void fill_b(string (&aS)[x][y]) {  // Array-Referenz
    
        cout << "x: " << x << " y: " << y << endl;
        // füllen
    	for (int i=0; i < x; ++i)
    		for(int j=0; j< y; ++j)
    			aS[i][j] = "Hallo";
    }
    
    int main()
    {
        string mySA[5][7];
    
        fill_a(&mySA[0][0], 5, 7);
    
        fill_b(mySA);
    
    	cout << mySA[3][3] << endl;
    }
    


  • Vielen dank, die Variante mit dem Template passt perfekt.


Log in to reply