Gast
#4340363
Hallo, wie kann ich ein struct-Array übergeben und die Größe innerhalb einer Funktion bestimmen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
|
Anzeige
|
Probleme, struct zu übergeben und Größe zu bestimmen
Gast
#4340363
Hallo, wie kann ich ein struct-Array übergeben und die Größe innerhalb einer Funktion bestimmen?
Gast
#4340372
>wie kann ich ein struct-Array übergeben und die Größe innerhalb einer >Funktion bestimmen? Gar nicht. In C gibt es keine Arrays als Funktionsargumente. Array-Grösse muss als separates Arg übergeben werden. Steht alles in Deinem C-Buch.
Gast
#4340427
> uint8_t num = sizeof(ledarray); // Liefer nicht den richtigen Wert zurück Jeder anständige C-Compiler sagt Dir das als Warnung - jene sind entgegen landläufiger Meinung halt nicht dazu da, um ignoriert zu werden. > Array-Grösse muss als separates Arg übergeben werden. Nein, muss nicht(tm). Wenn man sich das Argument um jeden Preis sparen will kann man sich auch einfach eine 'end-of-array'-Marke setzen. Bei einem C-Style String wäre das 0. Der TO könnte eine Farbe definieren bzw. reservieren, die dafür herhalten muss. Was schöner oder einfacher ist hängt aber immer vom Kontext ab. Ich würde
in die Liste der tatsächlichen Parameter mit aufnehmen, ggf. auch in ein schönes Makro à la
verpackt. HTH und nix für ungut. Antwort schreiben |
Anzeige
|