Array und dessen Index

#3219066
Lesenswert?

Moin,
Irgendwas muss ich übersehen haben
Ich habe ein Array:
1
volatile unsigned char PVWChannel[16]={ 1,2,3,4,5,6,7,133,9,10,11,12,13,14,15,16};

Auf dieses wird mittels des Index
1
unsigned char key;
zugegriffen.
"key" werden Werte zwischen 0 und 16 zugewiesen, wobei die 0 
herausgefiltert wird (Rückgabewert einer Matrix-Tastaturabfrage: "0" = 
keine Taste gedrückt).
Auf das Array greife ich nun so zu:
1
xyz = PVWChannel[key-1];

Es sollte also bei key = 1 xyz=1 sein oder bei key = 8 xyz = 133.
Ist es aber nicht.
Bei key = 1 ist xyz = 0 und bei key = 8 ist xyz = 132.
Das zieht sich über das ganze Array hin.

Woran liegt es?
Die Optimieroption des Compilers ist "0".

Vielen Dank und viele Grüße
Rahul
#3219090
Lesenswert?

array schrieb:
> key-1 bei key =0 --> key=255
>
> Zugriff auf Elemente ausserhalb des Arrays

Wer lesen kann, ist klar im Vorteil. (Passiert mir aber auch ganz 
gerne).
Die 0 wird vor dem Array-Zugrff rausgefiltert.

Daniel V. schrieb:
> Da du schon deutlich über 1000 Beiträge geschrieben hast, weisst du
> sicher, dass jetzt gleich die kaputten Glaskugeln kommen...

Welche Paramewter fehlen noch?
#3219128
Lesenswert?

Yalu X. schrieb:
> Rahul Der trollige schrieb:
>> Bei key = 1 ist xyz = 0 und bei key = 8 ist xyz = 132.
>
> Dann hast du wahrscheinlich statt
> xyz = PVWChannel[key-1];
>
> dieses
> xyz = PVWChannel[key-1]-1;
>
> geschrieben.

nee. Dachte ich auch schon.

be stucki schrieb:
> Verhält sich das Programm korrekt, wenn du
> z.B.xyz=PVWChannel[0];schreibst?

in dem Fall sollte xyz = 1 sein. Ist aber 0.
Gast #3228875
Lesenswert?

Justus Skorps schrieb:
> array schrieb:
>> 0-16 --> 17 Elemente
>> key-1 bei key =0 --> key=255
>>
>> Zugriff auf Elemente ausserhalb des Arrays
>
> er sagt ja, dass die 0 rausgefiltert wird...allerdings fände ich es auch
> intuitiver, das Array trotzdem mit 17 Elementen zu erstellen, an der
> 0ten Stelle eben nur ein Dummywert...

"intuitiver", ich hör wohl nicht richtig?
Wohl eher verschwenderisch.
Mit wachsender Erfahrung dürfte es kein Problem sein, sich an einen 
Index von 0 bis (Anzahl der Element - 1) zu gewöhnen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren