0

下面的代码可以,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++ 是一个不错的选择,但很困惑。

4

1 回答 1

2

看起来像递归深度引起的简单堆栈溢出。您的选择:

  1. 别担心,你永远不会真正写出这种代码。
  2. 增加堆栈大小。
  3. 如果允许,在不使用递归的情况下完成你的家庭作业。
于 2011-12-18T19:25:50.027 回答