Die Grenze sollten die Größe des größten Verfügbaren Speicherbereichs sein.
rein theoretisch ist die größe maximal
($7FFFFFFF - 8) div SizeOf(arr[0])
Felder,
aber praktisch ist die größe auf den größten zusammenhängenden freien Speicherbereich im virtuellen Speicher der Anwendung und auf den maximalen freien Speicher im physischen Arbeitsspeicher (
RAM + Pagefile) begrenzt.
Wenn es also bei diesen läppischen 1800 Byte (200 * SizeOf(Real)) schon knallt, dann ist entweder der virtuelle Speicher deiner Anwendungs hoffnungslos überfüllt und du kannst froh sein, daß die Anwendung überhaupt bit dahin gelaufen ist
oder du solltest nach anderen Ursachen suchen, wie
- fehlerhafte Pointer
- Speicherlecks
- Pufferüberläufe
- falsche Indize
Als erstes empfehle ich einfach mal die Index- und die Bereichsprüfung in den Projektoptionen zu aktivieren und dann auch mal FastMM zu installieren und nach Speicherlecks zu suchen und/oder ein anderes Speicherüberwachungstoll zu verwenden.