我正在使用MinGW和GCC 3.4.5(mingw-special vista r3).
我的C应用程序使用了大量的堆栈,所以我想知道是否有任何方法可以以编程方式告诉剩余多少堆栈,因此如果我发现我即将耗尽,我可以干净地处理这种情况.
如果没有其他方法可以解决可能耗尽堆栈空间的问题?
我不知道我将从哪个堆栈大小开始,因此需要以编程方式识别.
为了知道C++中递归调用的限制,我尝试了这个函数!
void recurse ( int count ) // Each call gets its own count
{
printf("%d\n",count );
// It is not necessary to increment count since each function's
// variables are separate (so each count will be initialized one greater)
recurse ( count + 1 );
}
Run Code Online (Sandbox Code Playgroud)
当计数等于4716时,该程序停止!所以限制只有4716 !! 我有点困惑!! 为什么程序在计数等于4716时停止执行!! PS:在Visual Studio 2010下执行.谢谢