Я не понимаю, почему этот код компилируется и затем: ошибки сегментацииC Segfault используя длинные целые
Есть те unsigned long
с даже необходимо? Я также отметил, что если я изменю этот 21
на 18
, он даст правильный результат. Код предназначен для того, чтобы найти LCM всех чисел от 1
до 20
.
Запуск его в gdb
дает:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400643 in gcd (a=7536618, b=18) at p5.c:19
19 if (a > b) return gcd(a - b, b);
Вы пытались подключить отладчик и получить стек? Я предполагаю, что проблема слишком глубокая рекурсия в 'gcd()' – myaut
@myaut Спасибо, я запускаю его с помощью 'gdb'. Я отредактирую вопрос с результатом. – rubik
Похоже, вы правы. Как решить эту проблему? – rubik