cpp / beginner
Snippet
Dynamische Speicherverwaltung mit new und delete
Dynamische Zuweisung erstellt Speicher zur Laufzeit mit dem new Schlüsselwort. Dieser Speicher lebt auf dem Heap und bleibt erhalten, bis du ihn explizit mit delete freigibst. Für Arrays verwende delete[], um alle Elemente freizugeben. Wenn du nicht löschst, entstehen Speicherlecks.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>using namespace std;int main() {int* ptr = new int;*ptr = 42;cout << "Value: " << *ptr << endl;delete ptr;int* arr = new int[5];arr[0] = 10;arr[1] = 20;arr[2] = 30;cout << "Array: " << arr[0] << ", " << arr[1] << ", " << arr[2] << endl;delete[] arr;return 0;}
Erklärung
1
int* ptr = new int;
Ordnet Speicher für einen Integer auf dem Heap zu
2
*ptr = 42;
Derefenziert den Pointer, um einen Wert an dieser Speicheradresse zu speichern
3
delete ptr;
Gibt den Speicher des einzelnen Integers an das System zurück
4
int* arr = new int[5];
Ordnet Speicher für ein Array von 5 Integers zu
5
delete[] arr;
Gibt den Speicher des gesamten Arrays frei (beachte die Klammern)
6
*ptr
Der Sternoperator greift auf den an der Speicheradresse gespeicherten Wert zu