那么如何运行 Ackermann 的函数而不会Segmentation fault (core dumped)
因为我的程序尝试访问/扩展它无法访问的内存而出错?也许将 GCC 的内存限制扩大到 256MB?它会在大约 9MB 的内存使用情况下导致此错误。我运行 Manjaro Linux
代码:
#include<stdio.h>
int ack (int m, int n) {
if (m == 0)
return n + 1;
else if (n == 0)
return ack(m - 1, 1);
else
return ack(m - 1, ack(m, n - 1));
}
int main() {
int i, j;
for (i = 0; i <= 5; i++)
for (j = 0; j <=5; j++)
printf("Result for ackermann(%d, %d) is: %d\n",i, j, ack(i, j));
return 0;
}
添加了用于重现结果的代码