*.exe 中的 0x0053b1f7 處未處理的異常: 0xC00000FD: Stack overflow

今天運行程序的時候出現**.exe 中的 0x0053b1f7 處未處理的異常: 0xC00000FD: Stack overflow。明顯的可以看出是棧溢出。

在網上搜了一些相關的,http://connect.microsoft.com/VisualStudio/feedback/details/549828/-exe-0x71b33843-0xc00000fd-stack-overflow#details

http://topic.csdn.net/u/20080418/22/9a9eb9b4-62b3-4619-89b7-4be1a0157905.html

http://topic.csdn.net/u/20101022/16/2975975a-b63e-40b7-9195-a4a817acb423.html

在上面瞭解到:

By default, the program stack for x86 and x64 machines is 1MB (1048576 bytes)

所以當在棧上申請大於1M是會出現棧溢出。

http://msdn.microsoft.com/en-us/library/8cxs58a6.aspx這裏提到可以改變默認的棧的大小,這我沒有嘗試,因爲我有好多需要申請棧空間的地方,基本上都小於默認值,所以改變默認值覺得沒必要。

所以我用了一種方法就是動態申請內存,讓內存在堆上分配。

或者申請全局變量也可以,在靜態存儲區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章