怎么防止堆栈溢出

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:59:08
我写了一个程序,能运行,也正常.但运行一段时间后就会出现堆栈溢出
请问一下,怎么修正?
靠!
又是骗分的!
我是问怎么防止堆栈溢出!不是问堆栈是什么!
而且你发的我看过!是从别人那里COPY来的
别骗分!

就是多次递归调用函数,使级数过深(程序本身没有问题)
怎么才能解决,要具体方法

能解决问题再加50分

C# (明明是在C#分类里面的嘛...晕)

楼主问的是怎样防止堆栈溢出,而不是问堆栈溢出的原因。
堆栈溢出的原因谁都知道是直接或间接循环调用导致的。

防止的办法是:
1、画出方法调用关系图,看看里面有没有环,如果有环,则想办法去掉它。
2、如果没法去掉环,就用开新线程的办法消除环。

我想我的答案能够满足楼主的需要。

可能是死循环造成的,看看你的属性定义里的变量名和属性名是否类似,这个不小心就会造成循环。有时候是命名空间的问题。

public void MyFunction()
{
MyFunction();
}

以上代码必然导致堆栈溢出,楼上多检查类似以上的代码。
另外:还要防止函数之间,间接的调用构成一个封闭的循环。

检查下你的程序调用栈是否过长

或者是否递归过程太多,或者消息循环存在膨胀
这些都有可能导致堆栈溢出

或者在方法中分配数组的大小过大,也是造成堆栈溢出的原因之一

想问下,你使用的是什么语言。
有些语言可以监控,防止发生错误,请补充完整