Was muss nach dem dynamischen erstellen wieder freigegeben werden?



  • Hallo Leute,

    ich habe eine allgemeine Frage:

    Welche Objekte müssen nach dem Erstellen wieder freigegeben werden?

    Ich meine StringLists sind klar, aber was sonst noch alles???

    Vielen Dank,
    Euer Entertainer



  • Grundregel: Du musst alles freigeben, was du explizit (mit new) erstellt hast.

    Ausnahme: Wenn du das Objekt bei der Erstellung einem Owner zugeordnet hast dann übernimmt dieser Owner bei seiner eigenen Zerstörung automatisch die Freigabe der ihm untergeordneten Objekte.
    Die manuelle Freigabe ist hier aber trotzdem möglich und u.U. auch angebracht. Z.B. um den Speicherbedarf des Programms während der Ausführung durch das Löschen nicht mehr benötigter Objekte zu verringern, die sonst ggf. bis zum Programmende im Speicher gehalten würden.



  • Vielen Dank, Jansen, für die schnelle Antwort,

    Euer Entertainer



  • Dazu habe ich dann auch noch eine Frage.

    Wenn ich in einer Funktion z.B. eine Stringliste mit new erzeuge aber diese als Wert zurück gebe, wird dann der Owner bei der Empfangenen Liste gesetzt und wenn ich die freigeben mit freigegeben ?

    Dirk


Anmelden zum Antworten