


Retained Memory in Funktionen verstehen
Im Kontext einer Funktion bezieht sich „behält“ auf die Tatsache, dass die Funktion den von ihr verwendeten Speicher nicht freigibt oder freigibt. Stattdessen behält sie den Speicher und ist dafür verantwortlich, ihn freizugeben, wenn er nicht mehr benötigt wird.
Mit anderen Worten: Eine Funktion, die Speicher behält, gibt den Speicher nicht an den Heap oder den Stapel zurück, nachdem sie ihn nicht mehr benötigt. Dies bedeutet, dass die Funktion für die Verwaltung der Speicherlebensdauer verantwortlich ist, was in bestimmten Situationen nützlich sein kann, aber auch eine sorgfältige Verwaltung erfordert, um Speicherlecks zu vermeiden. Stellen Sie sich beispielsweise eine Funktion vor, die Speicher für eine gro+e Datenstruktur zuweist und dann a zurückgibt Zeiger auf diese Datenstruktur an den Aufrufer. Wenn die Funktion den Speicher nicht freigibt, wenn er nicht mehr benötigt wird, bleibt der Speicher von der Funktion erhalten und der Aufrufer ist für die spätere Freigabe verantwortlich. Dies kann zu Speicherverlusten führen, wenn der Aufrufer vergisst, den Speicher freizugeben malloc` und `free`) behält den Speicher nicht. Der Speicher wird wieder auf den Heap oder den Stack freigegeben, sobald die Funktion die Nutzung beendet hat, sodass sich der Aufrufer nicht um die Verwaltung der Lebensdauer des Speichers kümmern muss.



