Achtung - das ist nicht nur ein Pointer auf ne Variable sondern auf ein Array.
bsp:
Delphi-Quellcode:
type
PByteArr = ^TByteArr;
TByteArr = Array of Byte;
var
X: PByteArr;
begin
New( X );
SetLength( X^, 10 );
X^[0] := $FF;
Dispose( X );
...
anderes, ähnliches bsp:
Delphi-Quellcode:
type
PByteArr = ^TByteArr;
TByteArr = Array[0..0] of Byte;
var
X: PByteArr;
Test: Array[0..10] of Byte;
i: Integer;
begin
Randomize;
for i := 0 to High(Test) do
Test[i] := Random(10);
X := @Test;
ShowMessage( inttostr(x^[0]) );
Edit: Hab gerade deinen Code ausprobiert und ja bei mir haut er auch "Zu wenig Arbeitsspeicher" raus ... ist iwie klar denn du hast ein Array, welches
( $7FFFFFFF div sizeof(TCeDB_File_Data)-1 ) * SizeOf( TCeDB_File_Data ) --> also $7FFFFFFF=2147483647 Bytes (~2050mb) groß ist ! Hast du mehr
Ram zur Verfügung ? Falls ja dann dürfte es klappen
Ansonsten würde ich mal die Größe des Arrays verringern
MfG