Zitat von
Go2EITS:
Wenn Du die Adresse vom Byte Array im Speicher hast und auf Word erweitern möchtest und dabei die Inhalte erhalten bleiben sollen, so ist dies nicht möglich: Mit der Erweiterung auf Word über Zeiger überschreibst Du schon die ersten beiden Bytes mit einem Word.
Hm, was genau meinst du damit? Ich kann dir nicht folgen.
Ergänzung zu meinem ersten Post:
Ein anderer Weg über variante Records, ebenfalls Zugriff auf ein und denselben Speicher:
Delphi-Quellcode:
TMemory = record
case Byte of
0: (ByteArray : TVirtualDingens1);
1: (WordArray : TVirtualDingens2);
end;
var
mem : TMemory;
begin
mem.WordArray[0, 0] := $FFFF;
Writeln(mem.ByteArray[0, 0]);
Writeln(mem.ByteArray[0, 1]);
Readln;
end.
Oder eben, wie schon von meinem Vorredner vorgeschlagen, Kopieren des gesamten Arrays:
Delphi-Quellcode:
mem2[0, 0] := $FFFF;
mem1 := TVirtualDingens1(mem2);
Writeln(mem1[0, 0]);
Writeln(mem1[0, 1]);