*.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这里提到可以改变默认的栈的大小,这我没有尝试,因为我有好多需要申请栈空间的地方,基本上都小于默认值,所以改变默认值觉得没必要。

所以我用了一种方法就是动态申请内存,让内存在堆上分配。

或者申请全局变量也可以,在静态存储区。

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