Matrix-Struktur linearisieren mit dynamischen Speicher/Zeigern in C++ ?
kann jemand den Code erläutern, vor allem zeile 9 und 10 was da genau gemacht wurde. Es ging darum allgemein die Struktur einer nXm matrix zu linearisieren, sodass man am Ende nur noch eine Zeile hat. Unter verwendung vom dyn. Speicher und Zeigern.
![matrix - (Computer, PC, Mathematik)](https://images.gutefrage.net/media/fragen/bilder/matrix-struktur-linearisieren-mit-dynamischen-speicherzeigern-in-c-/0_big.jpg?v=1488823464000)
1 Antwort
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
In Zeile 9 wird ein double** Array auf dem Heap erstellt. Die Einträge dieses Arrays sind double* also Zeiger auf double. Das heißt double** matrix, ist ein Zeiger auf das erste Element eines Arrays in dem weitere Zeiger auf double-Arrays (oder wahlweise einzelne doubles) stehen.
In Zeile 10 wird dann Speicher reserviert und im Zeiger matrix[0] vermerkt, matrix[0] zeigt auf den Index 0 dieses neuen Objekts A. Hier wird der gesamte Speicher für die zu erstellende Matrix reserviert.
Zeile 13 definiert jetzt, dass matrix[1], matrix[2] etc. auf dasselbe Object A zeigen, nur entspricht z.B. der Eintrag matrix[2][3] dem Eintrag matrix[0][3+2*spalten].
Damit werden dann in Zeile 16 die Einträge eingefüllt.
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
nvm hat sich erledigt mit dem löschen hab mir nochmal die syntax angeschaut ^^
ok soweit so gut aber wieso löscht man am ende zwei objekte du sprichst ja selbst nur von einem objekt A? und das mit dem zeiger auf ein array von zeigern ist so schwer vorstellbar mMn. findet soetwas nur verwendung bei matrizen?