Einzelnen Beitrag anzeigen

mr_emre_d
(Gast)

n/a Beiträge
 
#10

Re: Pointer - ein schwarzes Tuch

  Alt 14. Feb 2009, 00:51
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
  Mit Zitat antworten Zitat