Ich geh mal davon aus, dass du mit statischen Arrays arbeitest. Die werden meines Wissens >>IMMER<< über den Programmstack verwaltet. Da reicht schon ein einfaches....
Delphi-Quelltext
1: 2:
| var Ar : array[0..200000000] of Integer; |
für einen Stacküberlauf aus. Hier wird sofort bei Initialisierung des Arrays der Fehler auftreten, weil du richtig viel Stackspeicherplatz dafür brauchst.
Hier ein paar Lösungsansätze:
1. Den Programmstack über die Compiler- bzw. Projektoptionen vergrößern (nur in seltenen Fällen empfehlenswert).
2. Mit dynamischen Arrays arbeiten. Wie das geht, erfährst du hier im Forum wenn du danach suchst. Ein dynamisches Array initialisierst du mit "SetLength".
Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5:
| var Ar : array of Integer; begin Setlength(Ar, 200000); end; |
Vorteile: Das Array wird nicht maßgeblich über den Programmstack verwaltet, sondern nur der Zeiger auf das Array (ich hoffe das ist korrekt, wenn nicht dann möge mich jemand verbessern

). Zudem kannst du die Arraygröße zur Laufzeit jederzeit neu bestimmen.