递归运行时n超过10000就崩了,为什么 codeblock编辑器
#include <stdio.h>#include <stdlib.h>
void PrintN(int n)
{
if(n)
{
PrintN(--n);
printf("%d\t",n);
}
return;
}
int main()
{
int n;
printf("请输入数值:");
scanf("%d",&n);
PrintN(n);
return 0;
}
弹栈压栈太多,容易奔溃 BngThea 发表于 2017-12-23 11:37
弹栈压栈太多,容易奔溃
请具体讲解下还是没懂
每次调用函数都会将函数入栈直到返回,你10000次就要将10000个函数入栈,返回的时候才出栈,内存消耗相当大,所以会崩溃 mitugaoyang 发表于 2017-12-23 11:44
请具体讲解下还是没懂
函数调用都是利用栈进行操作,很多编译器会检测调用栈的次数,太多就直接停止运行
页:
[1]