Leider läßt sich das Array nicht anlegen. Ich habe den Code auf das Wesentliche reduziert:
Code: Alles auswählen
#INTEGER_HALBE = 1073741803; Halber signed Integer Maximalwert, abgerundet
Dim KompVersionen.q(#INTEGER_HALBE / 8)
For xQ.q = 0 To (#INTEGER_HALBE / 8)
KompVersionen.q(xQ) = xQ
Next xQ
Debug ( "Integer halbe Bytes gefuellt !" ); ist OK
FreeArray(KompVersionen.q())
#INTEGER_VOLL = 2147483647; signed Integer Maximalwert
Dim KompVersionen.q(#INTEGER_VOLL / 8)
For xQ.q = 0 To (#INTEGER_VOLL / 8)
KompVersionen.q(xQ) = xQ; Ungültiger Speicherzugriff. (Lesefehler an der Adresse 18446744073709551600)
Next xQ
Debug ( "Integer Bytes gefuellt !" )
Eigentlich wollte ich ein 4 GByte Array anlegen. Warum schaffe ich das nicht?
Rahmebedingungen:
Windows 7 X64
16 GByte HSP
Laut Windows Task Manager 9534 MByte frei
PureBasic 4.60 (X64)
Startmeldung im Editor: Executable-Typ Windows - x64 (64bit)
Tritt sowohl bei Compilieren mit Debugger als auch bei Executable auf.
Hat jemand eine Idee, was ich falsch mache ?