Variablen vom Typ eine dynamischen Array sind Zeiger (man kann z.B. auch nil zuweisen um die Array-Variable zu löschen).
Beim "move" möchte man nicht die Variable mit einer neuen Adresse überschreiben, sondern den Speicher auf den diese Variable verweist.
Ebenso soll nicht die Adresse des Arrays übertragen werden. Der Inhalt des Arrays begint mit dem ersten Element.
Delphi-Quellcode:
move(data, bytes[0], length(data));
IdTCPClient1.IOHandler.Write(bytes[0]);