Announcement

Collapse
No announcement yet.

Liste von Zeigern aus einer Funktion zurückgeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Liste von Zeigern aus einer Funktion zurückgeben

    Hallo Zusammen,<P>aus einer Funktion soll eine Reihe an Zeigern zurückgegeben werden. Die Objekte auf die die Zeiger gerichtet sind, existieren bereits. Innerhalb der Funktion fällt die Entscheidung, welche Zeiger zurückgegeben werden sollen.<P>Nun die Frage(n),<BR>soll innerhalb der Funktion ein TList Objekt erstellt werden und das als Rückgabe der Funktion dienen? Dann muss man sich aber von aussen um das Löschen des Objekts bemühen.<BR>Statt einer Funktion wäre auch eine Prozedur mit einer CallByReference Signatur denkbar. Dann müsste zwar eine Instanz explizit erstellt und wieder gelöscht werden, aber das würde dann beides von aussen geschehen (kann also nicht so schnell zu Inkonsistenz führen).<BR>Oder soll der Gedanke mit dem TList komplett wegfallen und statt dessen ein dynamisches Array verwendet werden?<P>Freue mich über jeden Hinweis zum Thema. Danke

  • #2
    Ein dynamisches array ist wohl die einfachste Loesung.<br>
    <pre>
    type
    TMyObjectList: array of TObject;

    function PointerListReturner: TMyObjectList;
    var
    I: Integer;
    begin
    SetLength(Result, 100);
    for I := 0 to 99 do
    Result[I] := WasAuchImmer;
    end;
    </pre&gt

    Comment


    • #3
      Hallo Robert,<P>vielen Dank für Deine rasche Antwort!<P>Deine Lösung ist sinnvoll, denn sollte das Ergebnis von <PRE>PointerListReturner;</PRE> einer lokalen Variable vom Typ <PRE>TMyObjectList;</PRE> übergeben werden, ist nach verlassenem scope diese sowieso wieder gelöscht und der Speicherbereich freigeben.<P>Jo, vielen Dan

      Comment

      Working...
      X