Nabend,
ich versuche gerade einen array vorzubelegen:
1
constint16_tTestArray[179]PROGMEM={
2
3
1,1,1,1,1,1,1,1,1,1,
4
1,1,1,1,1,1,1,1,1,1,
5
1,1,1,1,1,1,1,1,1,1,
6
1,1,1,1,1,1,1,1,1,1,
7
1,1,1,1,1,1,1,1,1,1,
8
1,1,1,1,1,1,1,1,1,1,
9
1,1,1,1,1,1,1,1,1,1,
10
1,1,1,1,1,1,1,1,1,1,
11
1,1,1,1,1,1,1,1,1,1,
12
1,1,1,1,1,1,1,1,1,1,
13
1,1,1,1,1,1,1,1,1,1,
14
1,1,1,1,1,1,1,1,1,1,
15
1,1,1,1,1,1,1,1,1,1,
16
1,1,1,1,1,1,1,1,1,1,
17
1,1,1,1,1,1,1,1,1,1,
18
1,1,1,1,1,1,1,1,1,1,
19
1,1,1,1,1,1,1,1,1,1,
20
1,1,1,1,1,1,1,1,1,1
21
};
Der Array enthält wie man sieht 180 Stellen (hier nur Einsen Testweise).
Die Größe des Arrays habe ich mit 179 definiert, da ja C bei 0 beginnt
und demnach von 0 bis 179 --> 180 Stellen vorhanden sind.
Dennoch meckert der Compiler:
test.c:386: warning: excess elements in array initializer
test.c:386: warning: (near initialization for 'TestArray')
Definiere ich die Größe statt 179 auf 180 ist die Warnung weg. Verstehe
ich aber nicht ganz, da ja C wie gesagt ab 0 initialisiert.
Kann mir das jemand erklären?
Danke.
Daniel schrieb:> Der Array enthält wie man sieht 180 Stellen (hier nur Einsen Testweise).> Die Größe des Arrays habe ich mit 179 definiert, da ja C bei 0 beginnt
... beim Index, da der sich aus dem Offset zum ersten Element ergibt.
> und demnach von 0 bis 179 --> 180 Stellen vorhanden sind.
Genau. Index 0 bis 179, macht eine Größe von 180 Stellen, also mußt du
als Größe 180 angeben.
Eine eigene Frage?
Dieser Thread ist über 14 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.