Thema: Delphi PPoint zu short

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: PPoint zu short

  Alt 2. Mär 2018, 22:54
Selbst wenn beides dynamische Arrays wären, ginge es nur, wenn SizeOf(DasArray[0]) bei Beiden identisch wäre und wenn die Felder eine kompatible Speicherverwaltung haben.

TArray<TSmallPoint> und TArray<Small> können also nicht kompatibel sein.

Aber da der "Inhalt" beider Arrays aus vielen "Small" besteht, dann
Delphi-Quellcode:
SetLength(meta, Length(xy) * 2);
Move(meta[0], xy[0], Length(meta) * SizeOf(Small)); // oder mit MoveMemory
Vorallem wenn die Felder mehr als nur einfache "Integer" sind, dann
Delphi-Quellcode:
SetLength(meta, Length(xy) * 2);
System.CopyArray(@meta[0], @xy[0], TypeInfo(Small), Length(meta));
was die Speicherverwaltung des Typs beachtes. (Interface, dynamisches Array, String, ...)
$2B or not $2B

Geändert von himitsu ( 2. Mär 2018 um 23:06 Uhr)
  Mit Zitat antworten Zitat