Huhu,
folgendes:
//..
double bla[blub];
//..
Ist ne simple Anweisung und lässt sich mit GCC auch immer kompilieren.
Mein Problem ist nun, sobald dieses Feld an die 8MB kommt (oder größer) stürzt mein Programm ab, als Fehlermeldung kommt Speicherzugriffsfehler. Lösung ist nicht weiter tragisch, einfach mit new erzeugen und dann damit arbeiten.
Meine eigentliche Frage ist nun: warum kackt er bei 8MB ab ? Kann man das irgenwie ändern oder ist das einfach ein Linuxproblem ?
8MB Grenze
Re: 8MB Grenze
Ich denke, dass es ein gcc-Problem ist. Jeder Compiler hat nur begrenzt viel Platz um Variablen auf dem Stack anzulegen, während das Anlegen mit new, malloc den geamten Addressraum des Programms ausnutzen kann.Huhu,
folgendes:
//..
double bla[blub];
//..
Ist ne simple Anweisung und lässt sich mit GCC auch immer kompilieren.
Mein Problem ist nun, sobald dieses Feld an die 8MB kommt (oder größer) stürzt mein Programm ab, als Fehlermeldung kommt Speicherzugriffsfehler. Lösung ist nicht weiter tragisch, einfach mit new erzeugen und dann damit arbeiten.
Meine eigentliche Frage ist nun: warum kackt er bei 8MB ab ? Kann man das irgenwie ändern oder ist das einfach ein Linuxproblem ?
Gruß Tobias[/quote]
-
- Beiträge: 520
- Registriert: 12.06.2003 23:18:50
- Wohnort: Siegburg
Du kannst mit ulimit die Stackgröße anpassen. Mit siehst du die aktuelle Einstellung und mit kannst du sie vergrößern.
Code: Alles auswählen
ulimit -s
Code: Alles auswählen
ulimit -s 100000