C-Programmierung

Indizierung

Arrays | | Tabellen

Der Zugriff auf ein bestimmtes Element erfolgt über den Index, der nach dem Namen in eckigen Klammern angegeben wird.

Auf das i-te Element wird mit a[i] zugegriffen. Der Wert von a[i] entspricht dem Inhalt des i-ten Elements des Arrays.

Der Index ist ein ganzzahliger Wert, der sich im Bereich 0..n-1 bewegt. Das erste Element entspricht also immer dem Index 0.

Jedes indizierte Element verhält sich wie die Variable des entsprechenden Typs:

  • Schreiben: a[i]=v;
  • Lesen: v=a[i];
      ---------------------------------------------
RAM      ... | v | v | v | v | v | ... |  v  | ...
      ---------------------------------------------

             <--------- n elements ---------->

             ---------------------------------
Array        | v | v | v | v | v | ... |  v  |
             ---------------------------------

Index        | 0 | 1 | 2 | 3 | 4 | ... | n-1 |

Fallgrube: Verwendet man einen zu grossen Index, also z.B. den Index 10 bei einem 10-elementigen Array, so greift man auf ein Speicherelement zu, dass ausserhalb des reservierten Speichers liegt und daher undefiniert ist. Im günstigsten Fall führt dieser Zugriff zu einer Speicherverletzung (Crash), im ungünstigsten Fall überschreibt man unwissentlich Daten, die an dieser Stelle abgelegt sind. Dies führt zu schwer auffindbaren Folgefehlern.

Arrays | | Tabellen

Options: