Entwickler-Ecke

Programmierwerkzeuge - Dynamisches Array bei Delphi3 ?


F34r0fTh3D4rk - Do 23.06.05 17:27
Titel: Dynamisches Array bei Delphi3 ?
Hallo, gibt es eine alternative zu dynamischen arrays bei delphi3 ? weil diese
doer wohl dem Anschein nach noch nicht existieren :roll:


BenBE - Do 23.06.05 20:10

Es gibt zwei Möglichkeiten:

1. VCL --> TList
2. ^Array[0..0of TDeinType;

Beide Möglichkeiten funktionieren, nachteil der zweiten Möglichkeit ist jedoch, dass keine Konstanten Indizes ungleich 0 direkt im Source angesprochen werden können. Außerdem musst Du dich um die Speicherverwaltung bei der zweiten Variante auch vollständig selber kümmern.

ACHTUNG: Vor der Indexklammer das dereferenzieren nicht vergessen!


F34r0fTh3D4rk - Do 23.06.05 20:11

danke, gut zu wissen :D


delfiphan - Do 23.06.05 20:21

user profile iconBenBE hat folgendes geschrieben:
2. ^Array[0..0of TDeinType;

Beide Möglichkeiten funktionieren, nachteil der zweiten Möglichkeit ist jedoch, dass keine Konstanten Indizes ungleich 0 direkt im Source angesprochen werden können.

Da die 2GB-Grenze fix ist, kannst du das so lösen:

System.pas:
1:
2:
  PointerArray = array [0..512*1024*1024 - 2of Pointer;
  PPointerArray = ^PointerArray;


Moderiert von user profile iconraziel: Quote-Tag entfernt und Unit-Namen im Delphi-Tag eingefügt.


F34r0fTh3D4rk - Do 23.06.05 20:23

hast recht, nur muss ich dann die länge immer extra speichern, aber egal :wink: