Ein Array[0..0] ist ein statisches Array (ohne Bereichsprüfung) und über SetLength kann man nur dynamische Arrays behandeln.
Wenn, dann könnte man also nur den Speicher für den ganzen Record reservieren.
Delphi-Quellcode:
type PDLI = ^DLI;
var X: PDLI;
X := GetMemory(SizeOf(DLI) + (PE_Count - 1) * SizeOf(PI));
Ich hatte es mir allerdings einfach gemacht und it diese Records/Arrays selbstdefiniert und die Arrays mit einer maximal zu erwartenden Größe deklariert, als ich das letzte Mal mit sowas arbeitete.
[edit]
oder so