![]() |
AW: Risiko dyn.array als Funktionsrückgabewert ???
Ich nutze diese gerne mal, als Rückgabewerte, für irgendwelche kleineren Listen, denn hier muß sich keiner um die Speicherfreigabe kümmern.
Nicht umsonst sollte z.B. keine TStringList als Result nutzen, da dort die Sache mit der Freigabe nicht so schön zu klären ist. |
AW: Risiko dyn.array als Funktionsrückgabewert ???
@Himitsu
Also ich nutze sie nun eben gerade gern für große Datenmengen, da hier der riesen Overhead der Objekte (TList<Real>, o.Ä.) entfällt und RAM ist zumindest bei mir immer noch kostbar. Aber das ist wohl Geschmacksache. @uligerhardt Ich finde immer noch, das Beispiel ist ungeeignet, da alles genau so ist, wie man es auch erwartet. Wenn nil, dann length=0...wenn out, dann geht nix rein, also auch nil--> length=0, wenn das setlength vor dem write steht, stimmt auch die Länge=10 usw... @Himitsu Teil2 ;) Du hast natürlich recht, dass man beim Result von Funktionsaufrufen aufpassen muss, ob man selbst sauber initialisiert. Doch da sollte man dann auch eine Compiler-Warnung bekommen, oder nicht? Außerdem ist das ja nicht nur bei DynArrays der Fall sondern generell. @bernhard_LA Um mal wieder zum eigentlichen Thema zu kommen. Gibt es denn noch irgendwelche Hinweise (Fehlermeldung, Code-Schnippsel,...)? Sonst ist das hier wahrscheinlich wenig Erfolg versprechend. Gute Nacht |
AW: Risiko dyn.array als Funktionsrückgabewert ???
Zitat:
Zitat:
|
AW: Risiko dyn.array als Funktionsrückgabewert ???
fehler gefunden : falscher Zugriff aber ne ganze menge code zeilen vor AV --> lange suche :-( .... die jetzt ein Ende hat :-D
|
AW: Risiko dyn.array als Funktionsrückgabewert ???
Gerade bei großen Datenmengen kann der Overhead des TList-Objekte schnell man nicht mehr ins Gewicht fallen.
Denn der reine Verwaltungsoverhead ist garnicht so groß. (nur ein paar wenig Byte) Das Einzige, was größer auffallen könnte, ist eine Geschwindigkeits- und Speicheroptimierung. So wird beim .Add nicht nur für das eine Feld Speicher reserviert, sondern gleich für ein paar mehr. Vorteil ist dann, daß bei den nächsten Add keine Speicheranforderungen mehr nötig sind, was das umkopieren des Speichers oftmals erspart. Außerdem haben Liste auch andere Vorteile, was den größeren Overhead auch relativieren kann. (nette Funktionen, welche man nutzen kann) Es kommt aber immer auf den Einzelfall an, denn eine TList ist intern auch "nur" ein Array und je nach Anforderung hat alles mal seine Vor- und Nachteile. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz