C(gcc)中函数堆栈的最大大小

时间:2009-10-11 05:24:00

标签: c

我想知道gcc C中允许的最大(递归)函数调用次数是多少。我有一个程序可以采用400000个函数调用的堆栈深度,每个函数调用大小约为200字节(大约80 MB)。如何增加最大深度?

2 个答案:

答案 0 :(得分:8)

堆栈限制不是由编译器强加的,而是由操作系统强加的。在Unix上,你可以尝试使用ulimit(1)来增加它。

答案 1 :(得分:3)

我建议将例程重写为迭代算法。虽然不重要但转换算法应该是直截了当的,并且将使您不必处理这些资源限制(我猜,这可能会因架构,平台,计算机细节等而异常变化)。

另外,请注意:所有递归算法can be written迭代。