我想知道gcc C中允许的最大(递归)函数调用次数是多少。我有一个程序可以采用400000个函数调用的堆栈深度,每个函数调用大小约为200字节(大约80 MB)。如何增加最大深度?
答案 0 :(得分:8)
堆栈限制不是由编译器强加的,而是由操作系统强加的。在Unix上,你可以尝试使用ulimit(1)来增加它。
答案 1 :(得分:3)
我建议将例程重写为迭代算法。虽然不重要但转换算法应该是直截了当的,并且将使您不必处理这些资源限制(我猜,这可能会因架构,平台,计算机细节等而异常变化)。
另外,请注意:所有递归算法can be written迭代。