我聲明並初始化一個數組[100] [1000] [1000] char元素(100MB),它沒有說第一次堆棧溢出。但是當我運行它過了一會兒會拋出一個堆棧溢出異常!我在項目選項 - > linker-> system中增加了-Stack Reserve Size-至200,000,000,但它沒有奏效!我正在使用2GB Ram。如何避免堆棧溢出。C++堆棧溢出 - 視覺工作室2008
1
A
回答
8
停止使用堆棧!使用堆內存!
1
是否有你需要分配堆棧內存的原因?這可能是您的算法中的一個缺陷 - 不是編譯器的缺陷。
0
默認堆棧大小不是鏈接器選項,而是通過許多深奧的平臺特定機制進行控制。
在窗口上,當您調用CreateThread時,可以控制它。 在Unix上也有這樣做的pthread attr機制。
在非線程代碼中,在Unix上有ulimit設置來控制這個設置,但是它們可以被平臺限制所限制。例如,在AIX中,32位進程堆棧和堆在第二段中一起增長,因此兩者的最大值都爲256Mb(一旦命中,就有很多樂趣)。
可能有平臺機制可以用來控制這個(如ulimit),但建議使用堆可能是謹慎的。
相關問題
- 1. 堆棧溢出C++
- 2. PHPMyAdmin視覺工作室c#
- 3. C#堆棧溢出
- 4. 堆棧溢出C++
- 5. C++堆棧溢出
- 6. 視覺工作室斷點有條件的堆棧狀態
- 7. 如何解釋視覺工作室的調用堆棧?
- 8. 自動剖析視覺工作室2008
- 9. 視覺工作室2008主題
- 10. 視覺工作室
- 11. 堆棧溢出堆棧溢出
- 12. 視覺工作室
- 13. C++堆棧溢出錯誤
- 14. 堆棧溢出URL如何工作?
- 15. 源()不工作(「節點堆棧溢出」)
- 16. 堆棧溢出
- 17. C++程序第一視覺工作室2008速成版
- 18. 使視覺工作室在'='
- 19. 堆棧由指針在C工作,除了在堆棧下溢
- 20. XML xpath視覺工作室
- 21. 輸出Builded.exe視覺工作室
- 22. 視覺工作室突出定製
- 23. 阻止彈出式視覺工作室
- 24. 的Prolog用c#視覺工作室13
- 25. C#計算視覺工作室
- 26. 創建C++視覺工作室
- 27. c#調試視覺工作室2012
- 28. 堆棧溢出:: regex_replace
- 29. 在視覺工作室2012
- 30. 沒有視覺工作室
同意。 100MB的堆棧非常荒謬。我以爲我使用多個頁面不好... – asveikau 2009-10-18 04:06:56
使用「Free Store」而不是使用Heap – 2009-10-18 04:50:36