AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Risiko dyn.array als Funktionsrückgabewert ???

Ein Thema von bernhard_LA · begonnen am 8. Mär 2012 · letzter Beitrag vom 9. Mär 2012
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.543 Beiträge
 
Delphi 12 Athens
 
#1

AW: Risiko dyn.array als Funktionsrückgabewert ???

  Alt 8. Mär 2012, 17:28
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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Peter1999

Registriert seit: 13. Dez 2007
Ort: Dresden
88 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Risiko dyn.array als Funktionsrückgabewert ???

  Alt 8. Mär 2012, 21:24
@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
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Risiko dyn.array als Funktionsrückgabewert ???

  Alt 9. Mär 2012, 07:32
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...
Mit dem Beispiel wollte ich zeigen, dass die Rückgabe von compilerverwalteten Typen sich wie eine var-Übergabe vehält, wo doch semantisch gesehen eine out-Übergabe angemessen wäre:
Zitat von http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/devcommon/parameters_xml.html:
With an out parameter, however, the initial value of the referenced variable is discarded by the routine it is passed to. The out parameter is for output only; that is, it tells the function or procedure where to store output, but doesn't provide any input.
"output only" und "where to store output" hört sich für mich irgendwie schon nach Rückgabewert an.
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 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-2025 by Thomas Breitkreuz