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
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...
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?
Rahul Der trollige schrieb:> "key" werden Werte zwischen 0 und 16 zugewiesen, wobei die 0> herausgefiltert wird
Wenn der Rest genau so im Code steht wie in deinem Beitrag, wird hier
der Fehler sein. Poste mal den Codeschnipsel, in dem du den Wert zuweist
und prüfst.
Rahul Der trollige 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?
alles? eigentlich sollte man immer ein kompilierbares Minimalbeispiel
posten, bei dem der Fehler gerade noch auftritt...
> 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?
Aus drei Codezeilen sollen wir dir eine Lösung präsentieren?
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.
be stucki schrieb:> Evt. veränderst du irgendwo den Inhalt deines Arrays.
Danke! Das war's!
Das kommt dabei heraus, wenn man ein fünf Jahre altes Programm anfasst,
von dem man ausgegangen ist, dass man es nie wieder ändern muss.
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.