cpp / intermediate
Snippet
Manuelle dynamische zweidimensionale Arrays
Dynamische 2D-Arrays werden erstellt, indem ein Array von Pointern zugewiesen wird, wobei jeder Pointer wiederum ein Array von Werten auf dem Heap zugewiesen bekommt.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main() {int rows = 3, cols = 3;int** matrix = new int*[rows];for(int i = 0; i < rows; ++i) {matrix[i] = new int[cols];}matrix[1][1] = 5;for(int i = 0; i < rows; ++i) delete[] matrix[i];delete[] matrix;return 0;}
Erklärung
1
int** matrix = new int*[rows];
Reserviert Speicher für ein Array von Pointern (die Zeilen).
2
delete[] matrix[i];
Jede Zeile muss manuell freigegeben werden, bevor das Haupt-Pointer-Array gelöscht wird.