Zitat von
Airblader:
@ste_ett
Kenne mich nun nciht so aus, aber:
Angenommen ich gebe TMyIntArray zurück.
Gut, vielleicht wird es dann überschrieben, aber einmal wird es ja 100% zurückgegeben, sonst könnte bei jeder Rückgabe ja Fehler entstehen.
Wenn ich dann MyArray := GiveMeTheArray(xxx); mache, wird die Rückgabe ja sowieso einem neuem Array ( MyArray ) zugestellt und somit ist es ja egal, ob die Rückgabe wieder überschrieben wird, oder?
air
Ja, es kann theoretisch bei jeder Rückgabe zu Fehlern kommen.
Beim Beenden wird der gesamte Speicher, den diese Funktion genutzt hat, wieder freigegeben zur weiteren Nutzung.
Ob dieser Speicher genau in dem Moment wieder genutzt wird, hängt vom Speicherbedarf des Systems, bzw der laufenden Prozesse, ab.
Bei einem Array bekommst du nur den Pointer auf die Stelle im Speicher. Du speicherst nicht direkt den Inhalt des Arrays. Der Speicherbereich ist offen und kann jederzeit überschrieben werden, wodurch ein Zugriff zu Fehlern führt.