Delphi-Quellcode:
var
Destination, Source: Pointer;
MemorySize: SIZE_T;
begin
...
MemorySize := SizeOf(Short);
Destination := Pointer(NativeUInt(@buffer[0]) + K * MemorySize);
Source := @A2[K];
MoveMemory(Destination, Source, MemorySize);
Das ist keine schlechte Erklärung bzw. zu zeigen wie MoveMemory Arbeitet.
Aber sorry hier eine Funktion in 20 teile zu zerlegen macht nicht wirklich sinn.
Hilfsvariablen und Funktionen einzurichten mach sinn bei immer widerkehrenden Mechanismen aber nicht bei einer Zeile Code.
Habe noch nirgends gesehen das jemand CopyMemory in 100 Zeilen zerlegt.
gruss