Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Mehrdimensionales Array variable auslegen

  Alt 24. Apr 2009, 13: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));
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat