Возобновляемая ошибка процессора - PullRequest
0 голосов
/ 18 декабря 2011

Приведенный ниже код в порядке с 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;
}

Этот код имеет следующую ошибку: Разделите ожидание ошибки и Возобновляемая ошибка процессора

Я использую Borland Turbo C ++ 4.5 на Windows 7.

Как это исправить, а также предложить хорошую C (в частности) IDE. Я думаю, что eclipse c / c ++ - хороший вариант, но в замешательстве.

1 Ответ

2 голосов
/ 18 декабря 2011

Похоже на простое переполнение стека, вызванное глубиной рекурсии. Ваши варианты:

  1. Не волнуйтесь, вы бы никогда не написали такой код по-настоящему.
  2. Увеличить размер стека.
  3. Выполняйте домашнее задание, не используя рекурсию, если это разрешено.
...