Registriert seit: 16. Apr 2007
2.325 Beiträge
Turbo Delphi für Win32
|
Re: Array als Referenz einer Methode übergeben
22. Nov 2009, 18:31
Du hast Detlefs "var" unterschlagen. Der Grund, warum dies nötig ist, ist einfach: Es kann vorkommen, dass SetLength die Array-Daten verschieben muss, der Zeiger selbst wird also verändert. Aus diesem Grund ist der erste Parameter von SetLength auch als var deklariert. Wenn du nun den Array-Parameter nicht als var deklarierst, zählt der Parameter als neue Referenz (dynamische Arrays unterliegen der Referenzzählung). SetLength muss daher in jedem Fall ein neues Array anlegen, um die andere Referenz nicht zu verändern.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
|