Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#16

Re: dynamische Array kopieren (letztes Element fehlt)

  Alt 7. Mär 2010, 13:38
Mit
dynArray2 := dynArray1; wird aber nur die Referenz kopiert. Wenn man nun
  dynArray2[0] := IrgendwasNeues; setzt, wird auch dynArray1[0] geändert! (Anderes als bei Strings). Das Kopieren der Referenz ist nicht das gleiche, wie der Copy-Befehl. Nur beim Copy-Befehl wird der komplette Inhalt kopiert.

Die Delphi-Hilfe dazu:

Zitat:
Wenn X und Y Variablen desselben dynamischen Array-Typs sind, führt die Anweisung X := Y dazu, dass X auf dasselbe Array wie Y zeigt. (Es ist nicht erforderlich, vor dieser Operation Speicher für X zu reservieren.) Im Gegensatz zu Strings und statischen Arrays wird copy-on-write nicht für dynamische Arrays verwendet. Deshalb werden diese nicht automatisch kopiert, bevor einem ihrer Elemente ein Wert zugewiesen wird.
  Mit Zitat antworten Zitat