Frank5000 schrieb:
> Es funktioniert ohne das "&".
Das & wäre an dieser Stelle auch verkehrt und sollte dem Compiler eine
Warnung entlocken. Ohne das & ist es aber genau richtig.
Streng genommen kennt C gar keine mehrdimensionalen Arrays, sondern nur
eindimensionale Arrays, die aber ihrerseits Arrays als Elemente enthal-
ten dürfen¹.
Deswegen ist
1 | const uint8_t flash_text[2][4]
|
in Wirklichkeit ein Array mit zwei Elementen, von denen jedes ein Array
mit 4 uint8_t-Elementen ist.
Die beiden Elemente von flash_text sind also vom Typ
und haben somit exakt den gleichen Typ wie
1 | const uint8_t flash_text1[4]
|
Folglich kannst du flash_text[index] genau gleich verwenden wie
flash_text1, also bspw. auch als Argument für flash_text_to_display().
——————————————
¹) Die Eindimensionalität der C-Arrays ist auch daran erkennbar, dass in
jedem Klammerpaar [] immer nur ein einzelner Index steht. In den
meisten anderen Programmiersprachen stehen bei mehrdimensionalen
Arrays alle Indizes durch Kommata getrennt in einem Klammerpaar
(z.B. in Pascal: array[i,j]).