【发布时间】:2013-04-05 06:35:06
【问题描述】:
我是 C++ 的初学者。昨天我读到了递归函数,所以我决定自己写。这是我写的:
int returnZero(int anyNumber) {
if(anyNumber == 0)
return 0;
else {
anyNumber--;
return returnZero(anyNumber);
}
}
当我这样做时:int zero1 = returnZero(4793);,它会导致堆栈溢出。但是,如果我将值 4792 作为参数传递,则不会发生溢出。
关于为什么的任何想法?
【问题讨论】:
-
也许更大的值正是溢出堆栈所需要的?
-
尝试 5000 - 它很可能也会溢出堆栈。你的系统有多少内存?
-
您是否在问为什么您的堆栈具有特定大小?
标签: c++ function recursion stack-overflow