可恢复的处理器故障

时间:2011-12-18 19:21:06

标签: c processor turbo-c

下面的代码可以return n <= 100 && (printf("%d\n", n), print(n+1)) || 0;,但return n <= 1000 && (printf("%d\n", n), print(n+1)) || 0;

会出错
#include <stdio.h>

int print(int n)
{
   return n <= 1000 && (printf("%d\n", n), print(n+1)) || 0;
}

int main(void)
{
   print(1);
   return 0;
}

此代码有以下错误: 划分错误期望和 可恢复的处理器故障

我在Windows 7上使用Borland Turbo c ++ 4.5。

如何修复它并建议一个好的C(特定)IDE。 我认为eclipse c / c ++是一个很好的选择,但很困惑。

1 个答案:

答案 0 :(得分:2)

看起来像递归深度导致的简单堆栈溢出。你的选择:

  1. 不要担心,你永远不会写这种真实的代码。
  2. 增加堆栈大小。
  3. 如果允许,请不要使用递归来完成作业。