mehrdimensionales Array an Funktion übergeben

Gast #957526
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
1
void bla(char *s[2][2]) {
2
    puts(s[0][1]);
3
    puts(s[0][0]);
4
}
5

6
int main(void) {
7
    char * stry[2][2];
8
    
9
    stry[0][0]="lala";
10
    stry[0][1]="blubb";
11
    bla(stry);
12
    return 0;
13
}
Gast
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.