Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eine Function ein Array liefern lassen (https://www.delphipraxis.net/42338-eine-function-ein-array-liefern-lassen.html)

malo 17. Mär 2005 15:26

Re: Eine Function ein Array liefern lassen
 
Zitat:

Zitat von Airblader
@malo

naja, aber wenn man eina rray zurückgibt muss man ja sowieso mit indexen arbeiten, oder halt die arrayelemente mit entspr. index in einer neuen variablen ablegen :stupid:

Ja. Aber in deinem Beispiel speichert man ja das GANZE Array in einem neuen Array (ihne auf Indexe zu achten) ;)

ste_ett 17. Mär 2005 15:29

Re: Eine Function ein Array liefern lassen
 
Zitat:

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz