[C] Pointer auf Array

08/26/2009 19:44 | Moep |#1
Hallo,

Ich habe folgendende Pointer deklariert:

Code:
char *Menu[COLOR="Red"]0[/COLOR][] = {"Gerd","Egon","Juergen","Karl","Hans-Dieter","Hans-Guenther"};
char *Menu[COLOR="Red"]1[/COLOR][] = {"Anna","Inge","Franziska","Lisa","Maria"};
usw..
nun möchte ich aber den Index von Menu durch eine Variabel ersetzen um diese dann z.B per Tastendruck durchzählen zu können.
Wie kann ich das deklarieren und wie kann ich es aufrufen?

also, Pseudocode:
Code:
char *Menu[0][] = {"Gerd","Egon","Juergen","Karl","Hans-Dieter","Hans-Guenther"};
char *Menu[1][] = {"Anna","Inge","Franziska","Lisa","Maria"};

int i = 0;

if(keyboard.up){
i++;
}
else if(keyboard.down){
i--;
}

printf("%c",*Menu[i]);
Könnt das sicher auch mit einer switch anweisung machen, aber dann würde ja nach jedem case das gleiche stehen, nur halt mit anderen Menu Index. Müsste doch auch eleganter gehen.

P.S. meine Plattform kann nur mit C arbeiten. :rolleyes:

thx 4 help
08/26/2009 21:08 ms​#2
Meinst du sowas?

Code:
	char *Menu[2][6] = {"Gerd","Egon","Juergen","Karl","Hans-Dieter","Hans-Guenther",
			    "Anna","Inge","Franziska","Lisa","Maria",""};

	int i, j;

	for (i = 0; i < 2; i++)
	{
		for (j = 0; j < 6; j++)
		{
			if (strlen(Menu[i][j]))
				printf("%s, ",Menu[i][j]);
		}
		printf("\n");
	}
08/26/2009 21:18 Adroxxx#3
Ich weiß jetzt nicht genau was du machen willst aber hier:

PHP Code:
char *Menu[] = {"Gerd","Egon","Juergen","Karl","Hans-Dieter","Hans-Guenther","Anna","Inge","Franziska","Lisa","Maria"};
    
int i 0;
    do 
    {
        if  ( 
GetAsyncKeyStateVK_UP )&) {

            
i++;
            if ( 
10){ 0;}    
            
printf("%s\n",Menu[i]);
        }

        if  ( 
GetAsyncKeyStateVK_DOWN )&) {

            
i--;
            if (
<= 0){ i10;}
            
printf("%s\n",Menu[i]);
        }
    } while (!
GetAsyncKeyStateVK_Q )&1); 
Ich glaub du solltest nochmal genauer erklären was du machen willst :>
08/26/2009 22:01 | Moep |#4
Ich möchte eine Menüauswahl machen die so aufgebaut ist wie die in der PSP Firmware.
Falls die jemand nicht kennt.. Man hat da halt Hauptmenüs z.B. Einstellungen, Spiel, Netzwerk usw... welche man mit links und rechts anwählen kann.
Nachdem man sich für eines dieser Hauptmenüs entschieden hat kann man dann die dazugehörigen Untermenüs mit up & down anwählen... Also eigentlich wie so ziemlich viele Menüaufbauten... :rolleyes:

Jedoch weiß ich nicht wie groß die Menüs werden sollen und möchte auch die Speicherausnutzung auf meiner Plattform (mit C auf der PSP :D) möglichst kompakt halten. Daher will ich die Arraygröße auch nicht wie Disconnect Beispiel vordefinieren, sondern das ende eines Wortes z.B. mit '\0' checken...

Bin noch ziemlich neu in C und hab mir das halt als kleine Übung vorgenommen ;)

Edit: