feld[][] als Funktionsparameter
-
Hallo.
kann mir bitte jemand sagen wieso ich einen Compilefehler bekomme. Bin C++ einsteiger und habe mir von dem Tutor sagen lassen dass ich auf diese weise
ein feld als parameter übergeben kann.Wieso funktioniert das bei eindeminsionalem feld und bei mehrdeminsionalem nicht?
Danke schon mal.
void ausgabe(int** a){ for(int i = 0; i < 2; i++){ for(int j = 0; j < 2; j++){ cout << a[i][j]; } cout << endl; } } int main(){ int a[2][2] = {{ 1, 2}, { 3, 4}}; ausgabe(a); return 0; }
-
Oft gemachter Fehler:
Der zweite Betrag erklärts:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-212469-and-highlight-is-array+2+dimensionales.html
-
Danke wird aber so gemacht...
Beispiel:
void ausgabe2d(int** a, int zeilen, int spalten){ for(int i = 0; i < zeilen; i++){ for(int j = 0; j < spalten; j++){ cout << a[i][j]; } cout << endl; } } int main(){ int zeilen = 2; int spalten = 2; //initialisieren int** feld; feld = new int*[zeilen]; for(int i = 0; i < 10; i++){ feld[i] = new int[spalten]; } feld[0][0] = 1; feld[0][1] = 2; feld[1][0] = 3; feld[1][1] = 4; ausgabe(g, zeilen, spalten); return 0; }
-
Da machst du aber etwas anderes, als im dem verlinkten Beitrag..

Hier hast du "wirklich" ein 2 Dimensionales Array, welches auch tatsächlich in einen Doppelzeiger konvertiert werden kann.
Aber grundsätzlich sind das 2 paar Schuhe und auch der Grund für die Verwirrung mit den Doppelzeigern.