2D Array zurückgeben
-
Hi!
Habe ein großes Problem beim Zurückgeben von 2D Arrays!
Hab schon fast alles ausprobiert, und es klappt nicht./*Hier das Problem*/ char** foo(char acFeld[][20]) { acFeld[10][10] = 'C'; return acFeld; } int main(int argc, char* argv[]) { char acFeld[20][20]; acFeld = foo(acFeld); return EXIT_SUCCESS; }
char** funktioniert nicht!!!
Wie soll ich das anders machen (das es funktioniert)Danke im voraus!
lg
DaVinci
-
nicht zurueckgeben. das array wird bereits manipuliert.
also so:
/*Hier das Problem*/ void foo(char acFeld[][20]) { acFeld[10][10] = 'C'; } int main(int argc, char *argv[]) /* ist geschmackssache aber der stern passt mehr zur variable als zum typ. beispiel: int a, *b; */ { char acFeld[20][20]; foo(acFeld); return EXIT_SUCCESS; /* 0 ist hier wohl gebraeuchlicher als dieses lustige define */ }
-
Die Umwandlung Array->Pointer funktioniert nur auf äußerster Ebene. D.h. du müßtest einen char*[20] zurückgeben (ich weiß nicht, ob das funktioniert). Aber bei Arrays ist es sowieso besser, die vor Ort zu verändern - die werden standardmäßig per Referenz übergeben, also wird sich die Anweisung "acFeld[10][10]='C'; direkt auf dein übergebenes Feld wirksam.