Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
11. Feb 2007
Der erste Konstruktoraufruf ist nicht optional, er ist sinnlos. Du weißt Speicher zu, den du nicht mehr freigibst. Speicherleck nennt man das.
Nebenbei sind deine Funktionen, die du dir da bastelst relativ sinnlos. Vor allem ErsterEintrag.
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
11. Feb 2007
Na wo ist das Problem? Es wird TStringList.Create aufgerufen, der Instanzenpointer auf das erzeugte Objekt wird in list1 gespeichert und anschließend nochmal in list2. Das heißt, list1 und list2 zeigen beide auf die gleiche Instanz einer TStringList.
Bei solchen Funktionen, die eine Instanz erzeugen und den Instanzenpointer zurückgeben, muss immer der Caller die Instanz freigeben. Klar, denn...