下面的代码对return n <= 100 && (printf("%dn", n), print(n+1)) || 0;
没有问题,但对return n <= 1000 && (printf("%dn", n), print(n+1)) || 0;
有错误
#include <stdio.h>
int print(int n)
{
return n <= 1000 && (printf("%dn", n), print(n+1)) || 0;
}
int main(void)
{
print(1);
return 0;
}
这段代码有以下错误:除以误差期望和可恢复的处理器故障
我在windows 7上使用Borland Turbo c++ 4.5。
如何修复它,并建议一个好的C(特别是)IDE。我认为eclipse c/c++是一个不错的选择,但是很困惑。
看起来像是由递归深度引起的简单堆栈溢出。你的选择:
- 别担心,你永远不会真正写这种代码。
- 增加栈大小
- 如果允许的话,不要使用递归来完成作业。