Mat*_*n L 5 c# stack-overflow recursion exception
可能重复:
运行时异常,递归太深
我在开发ac#.net程序时遇到了问题,我把它简化为一个简单的问题,我需要理解为什么这个代码会抛出一个stackoverflow异常,如果我调用这样的函数:
CheckFunc(16000);
Run Code Online (Sandbox Code Playgroud)
但是如果我这样称它就可以正常工作
CheckFunc(1000);
Run Code Online (Sandbox Code Playgroud)
这是功能:
private void CheckFunc(Int32 i)
{
if (i == 0)
MessageBox.Show("good");
else
CheckFunc(i - 1);
}
Run Code Online (Sandbox Code Playgroud)
试图使代码尽可能简单...
我知道有一个堆栈溢出但堆栈?我怎样才能解决这个问题 ?
谢谢.
Tib*_*ibi 12
问题确实是堆栈溢出.
堆栈是一个特殊的内存区域,其中存储了一些东西:
问题是这个存储区域是有限的.递归调用将在此堆栈上添加大量数据,并快速填充它.
有几种方法:
如果这还不够,唯一的解决方案就是找到一个迭代解决方案.
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |