Breymann. C++ Einführung und professionelle Programmierung

Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung

vred.bioinf.uni.sb.de
von vred.bioinf.uni.sb.de Mehr von diesem Publisher
17.11.2014 Aufrufe

Mehrdimensionale Arrays mit variabler Feldgröße Mit variabler Feldgröße ist hier gemeint, dass die Größe des Arrays zur Compilierzeit nicht bekannt ist. Die Größe kann dann natürlich nicht als Teil des Datentyps aufgefasst werden! Lösung: 1. Feld von Zeigern auf eindimensionale Arrays (Zeilen) anlegen, 2. jedem dieser Zeiger eine Zeile mit Spalten zuordnen. int z,s; // Zeilen , Spalten cout > z >> s; // erst zur Laufzeit bekannt mat ✲ mat[0] ✲ mat[1] ✲ mat[2] ✲ mat[3] ✲ Abb. 6.8: Zweidimensionales dynamisches Array Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 250 zurück Ende

Feld von Zeigern auf Zeilen anlegen: // mat ist ein konstanter Zeiger auf Zeiger auf int int **const mat = new int* [z]; // jeder Zeile Speicherplatz zuordnen: for(int i = 0; i < z; ++i) mat[i] = new int [s]; mat kann nun wie eine gewöhnliche Matrix benutzt werden. Der Zugriff auf ein Element der Matrix mat in Zeile i und Spalte j wird vom Compiler in die entsprechende Zeigerdarstellung umgewandelt. // Beispiel für die Benutzung der dynamisch erzeugten Matrix for(int iz = 0; iz < z; ++iz) { } for(int is = 0; is < s; ++is) { } mat[iz][is] = iz*s + is; cout

Feld von Zeigern auf Zeilen anlegen:<br />

// mat ist ein konstanter Zeiger auf Zeiger auf int<br />

int **const mat = new int* [z];<br />

// jeder Zeile Speicherplatz zuordnen:<br />

for(int i = 0; i < z; ++i)<br />

mat[i] = new int [s];<br />

mat kann nun wie eine gewöhnliche Matrix benutzt werden. Der Zugriff<br />

auf ein Element der Matrix mat in Zeile i <strong>und</strong> Spalte j wird vom<br />

Compiler in die entsprechende Zeigerdarstellung umgewandelt.<br />

// Beispiel für die Benutzung der dynamisch erzeugten Matrix<br />

for(int iz = 0; iz < z; ++iz) {<br />

}<br />

for(int is = 0; is < s; ++is) {<br />

}<br />

mat[iz][is] = iz*s + is;<br />

cout

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!