Tach, ich habe eine "Stringliste" im flash stehen: const char str_trinken[] PROGMEM = "trinken"; const char str_essen[] PROGMEM = "essen"; const char str_schlafen[] PROGMEM = "schlafen"; PGM_P strl_actions[] PROGMEM = {str_trinken, str_essen, str_schlafen}; Nun möchste ich wissen wieviele Elemente in strl_actions vorhanden sind und habe dazu geschrieben: count = sizeof(strl_actions) / sizeof(PGM_P); Der Compiler motzt aber über das Konstrukt: eventlist.c:124: error: invalid application of `sizeof' to incomplete type `({anonymous})' (gemeint ist das erste sizeof) Wie krieg ich die Anzahl der Elemente heraus ? MfG Stefan
So gehts, frag mich aber bitte nicht warum ?-) PROGMEM char str_trinken[] = "trinken"; PROGMEM char str_essen[] = "essen"; PROGMEM char str_schlafen[] = "schlafen"; PGM_P strl_actions[] PROGMEM = { str_trinken, str_essen, str_schlafen }; const int count PROGMEM = sizeof(strl_actions)/sizeof(PGM_P);
ÄÄÄÄÄhh Dein code geht auch, die zuweisung zu count muss nur die komplette information über strl_actions haben. Wenn der compiler nur über ein Headerfile erfährt dass strl_actions ein array von zeigern ist, weiss ernatürlich nicht wie groß dann die strl_actions (im c-file) wirklich ist. Das müsste der linker auflösen, und das kann meines wissens kein einziger linker.
> Das müsste der linker auflösen, und das kann meines wissens kein > einziger linker. Er dürfte es auch gar nicht (dem C-Standard nach) (afaik).
Danke !! Jo, jetzt fällts mir wie Schuppen aus den Nasenhaaren.... richtig, die Liste wurde über ein Headerfile eingebunden, da weis dann der Compiler natürlich nicht wie groß der Apparat ist, nur der Linker... Problem gelöst, nochmal Danke, Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.