Registriert seit: 19. Jun 2006
647 Beiträge
Delphi 11 Alexandria
|
AW: Keine Kopie?
4. Mai 2022, 13:28
Ja meiner Meinung nach ist der Satz falsch oder halt unverständlich. Ein Dynamsicher Array ist wie eine String und verhält sich auch so. Wenn du den Array an eine Funktion mit einem var oder const Parameter übergibst, wird nur der Pointer darauf übergeben und nichts kopiert. Das ist gleich wie bei einem String. Der String /Array wird nur kopiert, wenn der Parameter kein const/var ist, z.B. hier: MyProc(myStr: String) / MyProc(myArray: TValueArray).
In deinem Fall von TList.Add ist der Parameter ein Pointer und daher wird da auch nichts kopiert, sondern einfach nur der Pointer auf den Array übegeben. Das Problem ist also nicht wirklich das Array, sondern die Funktion von TList, die du falsch verstanden hast.
Geändert von Rolf Frei ( 4. Mai 2022 um 13:41 Uhr)
|