stack overflow bei Speicherzuweisung für 600-KB-Array?
-
Hallo ihr-mit-Programmierwissen-gesegneten

in meinem aktuellen Projekt (ca 1 MB Speicherbedarf) deklariere ich einen unsigned char array mit rund 600'000 Elementen. Genau in dieser Zeile schmiert das Programm leider immer ab: stack overflow. Bei 600 KB??? Das kann's doch nicht sein! Andere Programme mit einem vielfachen an Speicherbedarf laufen ohne Probleme.
Leider habe ich noch keine Erfahrung in exception handling. Kann es daran liegen, dass alle anderen Programme jeweils exceptions abfangen und meines nicht? Wie verhindere ich einen stack overflow bzw. wie umgehe ich ihn? Zur Info: Notebook mit 256 MB RAM, Win XP Home (das meines Wissens schon selbst rund 256 MB schluckt).Danke für eure Hilfe!
-
Hmm...ich bin mir nicht sicher aber versuch mal folgendes:
unsigned char* buf = new char[600000];Der Stack soll ja sehr begrenzt sein.(hab ich gelesen)
-
Wow, ich glaube das war's! Jetzt kratzt der PC zwar an einer anderen Stelle ab (Access violation), aber das erste Problem ist wohl behoben... danke, alex89ru!
Ist ja komisch, dass der Stack so stark begrenzt ist...
-
Die Standardgröße für den Stack ist oft auf 1MB eingestellt. Du kannst also diese Größe erhöhen oder eben das Array auf dem Heap anlegen.
-
Die Standardgröße für den Stack ist oft auf 1MB eingestellt.
Für jeden Thread?
So viel?
-
User--- schrieb:
...oder eben das Array auf dem Heap anlegen.
Das würde ich auch empfehlen. Auf dem Heap kannste besser mit großen Objekten rumpfuschen. Macht halt a biserl Arbeit: einmal new + delete, aber sonst nicht weiter aufwändiger.
-
User--- schrieb:
Die Standardgröße für den Stack ist oft auf 1MB eingestellt. Du kannst also diese Größe erhöhen oder eben das Array auf dem Heap anlegen.
wie ändere ich die gröse bei visual studio 6.0 ?
-
ajax schrieb:
User--- schrieb:
Die Standardgröße für den Stack ist oft auf 1MB eingestellt. Du kannst also diese Größe erhöhen oder eben das Array auf dem Heap anlegen.
wie ändere ich die gröse bei visual studio 6.0 ?
ist glaube ich nicht von compilier abhängig oder?
naja würde ich dir nicht empfehlen.
mfg.
-
Jopp lieber auf dem Heap alozieren das ist besser als irgend was am Compilierer zupfuschen

-
Stack pro Thread schrieb:
Für jeden Thread?
So viel?Ja, wird aber nur on demand tatsaechlich alloziert.