cpp / beginner
Snippet
Rückgabe nach Wert: Zurückgeben lokaler Kopien
Wenn eine Funktion einen Pointer auf dynamisch zugewiesenen Speicher zurückgibt, ist der Aufrufer für das Freigeben dieses Speichers mit delete[] verantwortlich. Dieses Muster ist in C++ üblich, erfordert aber sorgfältige Speicherverwaltung. Modernes C++ bevorzugt die Rückgabe von std::vector stattdessen.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>int* createArray(int size) {int* arr = new int[size];for (int i = 0; i < size; i++) {arr[i] = i * 10;}return arr;}int main() {int* myArray = createArray(5);for (int i = 0; i < 5; i++) {std::cout << myArray[i] << " ";}std::cout << std::endl;delete[] myArray;return 0;}
Erklärung
1
int* createArray(int size)
Funktion gibt einen Pointer auf dynamisch zugewiesenes Array zurück
2
int* arr = new int[size];
Alloziert Array auf dem Heap mit new
3
return arr;
Gibt den Pointer zurück, Heap-Speicher bleibt nach Funktionsende bestehen
4
delete[] myArray;
Muss Heap-Speicher freigeben, um Speicherlecks zu verhindern