Programmieren in C

Zweidimensionale Arrays

Neben Doppelzeigern gibt es auch eine Alternative, nämlich zweidimensionale Arrays. In diesem Beitrag lernst du, wie diese funktionieren.

Eindimensionaler und zweidimensionaler Array

Eindimensionale Arrays definierst du ganz normal:

Zweidimensionale Arrays
Ein- und zweidimensionale Arrays im Vergleich

Mit zweidimensionalen funktioniert es ähnlich. Das Einzige, was sich während der Deklaration ändert, ist das hinzufügen der zweiten Dimension durch einen weiteren Wert.

Verschachtelung der Arrays

Aber was bewirkt dieser zweite Wert nun? Durch das Hinzufügen dieses Werts kreieren wir sozusagen ein verschachteltes Array. Das heißt, dass n für unsere Zeilen steht und m für unsere Spalten. Das liegt daran, dass wir, wenn wir unser Feld „verschachteln“, ein zweites Array mit m Werten in jeden unserer n Einträge des ersten Feldes einfügen.

Zweidimensionale Arrays
Array mit n Zeilen und m Spalten

array [n] spricht nun also jeweils Felder mit m Komponenten an und array [n] [m] gibt konkrete Werte an dieser Stelle des Arrays aus. Ein zweidimensionales Array verhält sich also ähnlich wie ein Koordinatensystem.

Zweidimensionales Array im Arbeitsspeicher

Im Arbeitsspeicher sieht ein solches Konstrukt etwa so aus:

Zweidimensionale Arrays
Standard-Array im Arbeitsspeicher

Auf der ersten Ebene haben wir unser „Standard-Array“, dessen Einträge jeweils auf Einträge des zweiten Feldes verweisen. Wenn du eine so abgespeicherte Variable ansprichst, musst du allerdings einige Dinge beachten.

Erstens: Die Adresse von array [n] [m] verhält sich genauso, wie die von normalen Arrays und zeigt damit nicht auf die n-te Zeile und die m-te Spalte, sondern auf die n-1-te Zeile und die m-1-te Spalte.

Zweidimensionale Arrays
n-1-te Zeile und m-1-te Spalte

Zweitens: Auch für zweidimensionale Felder wird der Speicherplatz statisch reserviert. Das heißt für dich; keine dynamische Erweiterung oder Verringerung während der Laufzeit deines Programmes. Der reservierte Bereich kann jedoch wie gehabt auch nur teilweise benutzt werden.

Anwendung bei statischen Matrizen 

Aber wofür brauchst du solche Felder überhaupt? Meist werden zweidimensionale Arrays nur als Tabellen eingesetzt, um das Deklarieren von unnötig vielen Variablen zu vermeiden. In sehr seltenen Fällen werden auch Felder eingesetzt, die mehr als zwei Dimensionen haben. Einer dieser seltenen Fälle wäre die Speicherung von Koordinaten im Raum.

Zweidimensionale Arrays
Als Tabelle vermeidet es die Deklarierung unnötig vieler Variablen

Viele werden aber auch für die Rechnung mit statischen Matrizen eingesetzt, da durch die Nutzung eines Arrays die Berechnung eines solchen Gebildes mittels nur zwei verschachtelter for-Schleife erfolgen kann.

Eine solche Funktion sieht in etwa so aus:

Zweidimensionale Arrays
Berechnung einer statischen Matrize

Zuerst erhalten wir unsere zu berechnende Matrix aus unserer Main-Funktion. Dann deklarieren wir unsere Indizes, damit wir kontrolliert durch die Zeilen und Spalten wandern können.

Zweidimensionale Arrays
Berechnung einer statischen Matrize

Mit dem Index für unsere Zeilen starten wir nun unsere erste for-Schleife, die wir solange durchlaufen, bis wir zur letzten Zeile unseres Arrays kommen.

 

Zweidimensionale Arrays
Berechnung einer statischen Matrize

In diese for-Schleife legen wir eine weitere, in der wir Eintrag für Eintrag die Spalten unserer aktuellen Zeile durchlaufen und die Rechenaktion durchführen, die hier geplant ist. Durch die verschachtelte Natur dieser Funktion können wir also jede Zeile Eintrag für Eintrag durchlaufen, bevor wir zur nächsten springen und dort das Ganze von vorn beginnen.

Zweidimensionale Arrays
Berechnung einer statischen Matrize

Jetzt weißt du nicht nur, wie mehrdimensionale Arrays funktionieren, sondern auch, wie du sie anwendest.

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung.