D
Exakt erklaeren kann das keiner.
Aber: Was genau in dem Falle passiert, ist abhaengig davon, was HINTER deinem Array im Speicher liegt.
1.Ist das 'ne selten benutzte Variable, passiert nicht viel - Du hast nur gelegentlich falsche Daten, aber nur wenn Du auf die Variable zugreifst.
2. Ist dort Programmcode, schmiert Dir das Programm / der PC ab, sobald dieser Teil angesprochen wird
Was genau hinter dem Feld angeordnet wird steuert der Compiler, auch abhaengig von Deinen Optionen. Deshalb das verschiedene Fehlverhalten! Das haengt auch vom Typ der Variablen ab (global, lokal, static ...)!
zum Trost: Ich komm von der Pascal- ecke, da ist mir das am Anfang laufend passiert. Bei Pascal kann ein Array- Index anders liegen) Ich hatte mir damals angewoehnt, Arrays immer um 1 groesser anzulegen - das verschenkt Platz, hat aber am Ende 'nen Puffer. Mach ich aber nicht mehr!