mehrdimensionales Array an Funktion übergeben

Gast #957526
Lesenswert?

Hallo,

ich bräuchte nochmals eure Hilfe, ich habe jetzt für ein Menü eine 
Funktion angelegt. Vom Prinzip her Funktioniert die Funktion, aber ich 
hatte das Array mit dem Menüinhalt mit in der Funktion drin was zu 
Problemen führte.

Jetzt habe ich das Array mit ins Hauptprogramm übernommen was mir sogar 
vom Vorteil ist. Doch wie kann ich das Array jetzt an die Funktion 
übergeben.

Erstmal mein Array:
1
char* stry[4][6];
2
stry[1][1] = "Qme4.04";
3
stry[1][2] = "XL-OS";
4
stry[1][3] = "SPEEDER-OS";
5
stry[1][4] = "OLD-OS BIBOMON";
6
stry[1][5] = "OmniMon";
7
stry[1][6] = "OmniView";
8

9
stry[2][1] = "AUS";
10
stry[2][2] = "256KB RAMBO";
11
stry[2][3] = "256KB COMPYSHOP";
12
stry[2][4] = "512KB RAMBO";
13
stry[2][5] = NULL;
14
stry[2][6] = NULL;
15

16
stry[3][1] = "STANDART MONO";
17
stry[3][2] = "STEREO";
18
stry[3][3] = NULL;
19
stry[3][4] = NULL;
20
stry[3][5] = NULL;
21
stry[3][6] = NULL;
22

23
stry[4][1] = "KALTSTART";
24
stry[4][2] = "WARMSTART";
25
stry[4][3] = NULL;
26
stry[4][4] = NULL;
27
stry[4][5] = NULL;
28
stry[4][6] = NULL;

Aufruf der Funktion
1
menuzeichnen(menux, menuy, menustr, stry);

Und jetzt die Funktion selbst (ohne Inhalt)
1
void menuzeichnen(int x, int y, char* menustr[], char* stry)

Sicher geht das auch viel eleganter, aber da ich C newbie bin wäre ich 
ja erstmal Froh wenn es funktionieren würde.

Wo liegt mein Denkfehler oder fehler.

Danke schonmal im vorraus.

Ingo
Gast #957620
Lesenswert?

1
void f(int * arr){} //
2
void f(int arr[]){} // alle äquivalent
3
void f(int arr[1]){} //

analog
1
void f(int arr[10][10]);
2
void f(int arr[20][10]);
3
void f(int arr[][10]);  // auch alle äquivalent
4
void f(int (*arr)[10]);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren