Handbuch zur dynamischen Ablaufverfolgung in Solaris

Mehrdimensionale Vektoren

Mehrdimensionale skalare Vektoren kommen in D nur selten zum Einsatz, stehen aber zum Zweck der Kompatibilität mit ANSI-C und zum Beobachten sowie Ansprechen von Betriebssystem-Datenstrukturen zur Verfügung, die anhand dieser Fähigkeit in C erstellt wurden. Ein mehrdimensionaler Vektor wird als eine zusammenhängende Folge skalarer Vektorgrößen in eckigen Klammern [ ] im Anschluss an den Basistyp deklariert. Um beispielsweise einen zweidimensionalen Vektor festgelegter Größe mit Ganzzahlen zu 12 Zeilen auf 34 Spalten zu deklarieren, würden Sie Folgendes schreiben:

int a[12][34];

Die gleiche Schreibweise gilt für den Zugriff auf mehrdimensionale skalare Vektoren. Um beispielsweise auf den in Zeile 0, Spalte 1 gespeicherten Wert zuzugreifen, würden Sie folgenden D-Ausdruck schreiben:

a[0][1]

Speicherpositionen für die Werte mehrdimensionaler skalarer Vektoren werden per Multiplikation der Zeilennummer durch die Gesamtzahl der deklarierten Spalten und anschließende Addition der Spaltennummer berechnet.

Achten Sie darauf, die Syntax für mehrdimensionale Vektoren nicht mit der D-Syntax für Zugriffe auf assoziative Vektoren zu verwechseln (d. h., a[0][1] ist nicht identisch mit a[0, 1]). Wenn Sie ein unvereinbares Tupel für einen assoziativen Vektor verwenden oder einen assoziativen Vektorzugriff auf einen skalaren Vektor versuchen, gibt der D-Compiler eine entsprechende Fehlermeldung aus und kompiliert das Programm nicht.