0 Tage Serie
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.