Zitat von
himitsu:
Such mal nach
ARRAY[0..0] of YourType ... damit wurde jedenfalls schon mal ein Array-Typ definiert, welcher sich auf ein "dynamisches" Array umbiegen ließ ... dann war da noch was mit GetMem, FreeMem und Co.
[
dp]"ARRAY[0..0]"[/
dp], [google]"ARRAY[0..0]"[/google], [dt]"ARRAY[0..0]"[/dt] ...
In der Tat. Angenommen wir haben einen Record definiert, welcher TStruktur heißt, sowie den entsprechenden Pointertypen PStruktur; dann kann man AStruktur wie folgt deklarieren:
Delphi-Quellcode:
type AStruktur = array[0..0] of TStruktur;
type PAStruktur = ^AStruktur;
... die Typen PStruktur und PAStruktur kann man nun ineinander casten. Das ermöglicht, daß man z.B. "X * sizeof(TStruktur)" Bytes alloziert und den Pointer an eine Variable des Typs PStruktur zuweist, welche man dann jederzeit intern als Array ansprechen kann.
Bei PCHARs geht das auch ohne solcherlei Spielchen. Man kann also sagen "Bla[i]" und es wird auf die entsprechende Position innerhalb des "Zeichenarrays" zugegriffen. Unter C geht's anstatt nur für bestimmte Typen für jeden Pointertypen ...