Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Überlagerung verschiedener Arrays

  Alt 30. Aug 2006, 11:05
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]);
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat