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.