So ich weiss jetzt gar nicht genau wie ich das beschreiben soll. Hoffe
auch das mein Betr. überhaupt etwas aussagt. Mein Problem ist das ich
ein Struktur habe welches so aussieht:
1 | typedef struct{
|
2 | unsigned char length;
|
3 | unsigned char *cmd;
|
4 | void (*fct)(void);
|
5 | } UART_MEN;
|
davon habe ich mehrere statisch angelegt:
1 | static UART_MEN UART_menu_C[]={
|
2 | {3, "lr", UART_menu_flash_clr},
|
3 | {5, "lear", UART_menu_flash_clr}
|
4 | };
|
5 | ...
|
Um diese jetzt zu verwalten habe ich ein Feld angelegt mit Pointern auf
die einzelnen Strukturen
1 | static UART_MEN *pUART_menu[]={
|
2 | UART_menu_C,
|
3 | ...
|
jetzt muss ich wissen wie lang mein Statisches Strukturenfeld ist.
Wenn ich
ausführe erhalte ich 12, was auch der Länge von 2 Strukturen entspricht.
Da ich im Programm aber nur mit Pointern arbeite kann ich nur
1 | i=sizeof(*pUART_menu_sub);
|
verwenden.
Das gibt mir natürlich nur den Wert 6 da es ja nur auf die erste
Struktur zeigt und nicht auf das gesammte Element.
Finde keine andere Art das zu machen, daher meine Frage ob das überhaupt
so machbar ist oder ob es nicht machbar ist. Für jede Hilfe bin ich echt
dankbar.
Kurze Erklärun noch dazu. Damit baue ich mir ein Menü auf welches über
die UART gesteuert wird. Ich untersuche da den ersten Buchstaben, stimmt
dieser den zweiten... dazu ist dann die Struktur da. In der wird die
Länge des Befehls und der Befehl selber definiert. Jetzt muss ich aber
wissen auf wie viele Elemente ich es für den jeweiligen ersten
Buchstaben untersuchen muss.
Hoffe das iss nich zu verwirrend und mir kann jemand helfen.
Greetz
Stephan