今天运行程序的时候出现**.exe 中的 0x0053b1f7 处未处理的异常: 0xC00000FD: Stack overflow。明显的可以看出是栈溢出。
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这里提到可以改变默认的栈的大小,这我没有尝试,因为我有好多需要申请栈空间的地方,基本上都小于默认值,所以改变默认值觉得没必要。
所以我用了一种方法就是动态申请内存,让内存在堆上分配。
或者申请全局变量也可以,在静态存储区。