【发布时间】:2012-12-01 14:55:00
【问题描述】:
我已经为此解决方案进行了很多搜索,但完全没有运气。
这是我的程序的基础知识。我的主要功能中有一个循环。循环需要计算大量数据,当我给我的一个变量一个大于 20 的值时,它最终会堆栈溢出。
我知道,只要您在函数中“返回”,它就会释放整个堆栈。事情是这样的,我需要这个循环永远运行,直到人们关闭应用程序。
这甚至可能吗?在堆栈溢出发生之前,所有函数都需要很短的生命周期吗?如果我使用动态内存,我仍然无法摆脱它在运行时积累的其他堆栈数据。
基本上,我怎样才能永远运行一个函数而不会导致堆栈溢出?
【问题讨论】:
-
给我们看一些代码。
-
只有不断往里面放东西,栈才会溢出。让我们看看代码...
-
欢迎来到stack(最终)overflow Amadeus!
-
如果你继续递归,堆栈溢出......如果你的所有函数都停留在一个循环中,它不会向堆栈添加任何东西,所以它可以永远运行......跨度>
-
这个怎么样 ---- while(x=1) {x=2} while(x=2){x=1},,, 代码最终会溢出我的堆栈吗?跨度>
标签: c++ memory dynamic stack-overflow