2D-Array an Funktion übergeben
-
Hallo, könnt ihr mir sagen wie ich ein 2d-Array an eine Funktion übergebe, wenn ich noch nicht weiss wie groß das 2d-Array ist?
Will ich z.B. ein 5*5 Array übergeben, dann funktioniert es ja so:
void TESTFUNKTION(int 2darray[5][5])
Wie übergebe ich aber ein 2d-Array, von dem ich die größe noch nicht weiss?
Wenn ich es so versuche:
void TESTFUNKTION(int 2darray[][])
Sagt mir der compiler "incomplete element type"
Ich möchte nämlich eine Fkt. schreiben, die mir jedes beliebiges 2d-Array ausgibt.
grazie
-
Scheint ja momentan ein inflationäres Thema zu sein.
Nutze dazu void* und Zeiger auf VLA und übergib die dynamischen Ebenengrößen als extra Parameter, also in etwa:
void f(void *a,int x,int y) { int (*b)[y] = a; for(int n=0;n<x;++n,puts(""))for(int m=0;m<y;++m)printf("%d",b[n][m]); } int main(void) { int x,y; x = 2; y = 3; f((int[][3]){ {1,2,3}, {9,8,7} }, x,y); return 0; }