Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Mehrdimensionales Array variable auslegen

  Alt 24. Apr 2009, 14:34
nein, das dynamische Array selber läuft delphiintern über einen Pointer

bei einem 1-dimensionalem Array kann man das leicht beheben, indem man diesen Zeiger entsprechend (de)referenziet,
aber bei mehrdimensionalen Arrays hast du so nur Einfluß auf den Pointer der 1. Ebene und nicht auf die der Drunterliegenden.

ein dynamisches Array ist wie ein String/AnsiString
ein statisches eher wie ein ShortString/String[x] oder
Delphi-Quellcode:
record
  element0, element1, .... elementN: Byte;
end;
Delphi-Quellcode:
staticArray = record
  element0, element1, .... elementN: Byte;
end;

intDynamicArray = record
  Header: record;
    Referenzzähler: Elementanzahl: Integer;
  end;
  element0, element1, .... elementN: Byte;
end;
dynamicArray = (@intDynamicArray + SizeOf(Header));
und dein 2-Dimensionales sieht intern etwa so aus
Delphi-Quellcode:
intDynamicArrayEbene1 = record
  Header: record;
    Referenzzähler: Elementanzahl: Integer;
  end;
  element0, element1, .... elementN: Byte;
end;
intDynamicArray = record
  Header: record;
    Referenzzähler: Elementanzahl: Integer;
  end;
  element0, element1, .... elementN: je (@intDynamicArrayEbene1 + SizeOf(Header));
end;
dynamicArray = (@intDynamicArray + SizeOf(Header));
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat