在编有递归代码的VS、VC程序中可能会引起栈溢出错误,其实代码本身并没有出错,只是卺肿蓦艚系统分配的栈内存不满足程序需要。错误提示如下:First-chance惺绅寨瞀exceptionat0x00AFE289in边缘检测方法.exe:0xC00000FD:Stackoverflow(parameters:0x00000001,0x00F92FEC).Ifthereisahandlerforthisexception,theprogrammaybesafelycontinued.
工具/原料
VS2013
方法/步骤
1、打开出现栈溢出错误的工程文件,单击下图中的调试运行按钮
2、运行后会弹出如下的栈溢出错误窗口,单击“break",即中断执行
3、中断执行后会跳转到出现错误的代码段,即引起栈溢出的地方。
4、此时打开栈的调用窗口可以发现代码调用的栈太大了,超过了系统默认给定的容量。愕漓淤说所示下图中出现了读取内存失败错误。
5、打开此工程的属性页面,找到”Link“——”System“,如下图所示
6、在栈的调用尺寸中填写一个较大的值,比如1000000,如果还不够就再加大点,应用并退出设置。
7、再次编译运行代码,栈溢出错误即可以解决了。我的输出结果如下所示。