Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
type
TPhysicalCharWidth = Byte;
TPhysicalCharWidths = Array of TPhysicalCharWidth;
PPhysicalCharWidth = ^TPhysicalCharWidth;
var
T1, T2: TPhysicalCharWidths;
P: PPhysicalCharWidth;
I, Len: Integer;
begin
Len:= 10;
SetLength(T1, I);
for I:= Low(T1) to High(T1) do begin
T1[I]:= I + 100;
end;
P:= @T1[0];
SetLength(T2, Len);
T2[0]:= P^;
for I:= 1 to Len - 1 do begin
Integer(P):= Integer(P) + SizeOf(TPhysicalCharWidth);
T2[I]:= P^;
end;
end;
Ich verschiebe den Zeiger in einer Schleife jeweils um eine Position anhand der Größe eines Elements. Das funktioniert sogar, nur habe ich dann eine Kopie des ursprünglichen Arrays und nicht das Original. Im Ergebnis kann ich dann zwar die Werte lesen aber nicht in das ursprüngliche Array streiben