我们知道
所以我们可以说要实现递归,我们将不需要动态内存分配吗?
我完全困惑。
答案 0 :(得分:0)
递归本身仅需要堆栈。例如,要实现递归阶乘方法
int fact(int n) {
if (n <= 1) return 1;
return n * fact(n - 1);
}
仅需要堆栈。推入n - 1
,在其上调用fact
,然后将结果(可能还会在堆栈中返回)乘以n
。但是,即使递归操作本身不需要动态内存,但您通过递归实现的算法可能涉及需要动态内存的任务。因此,没有实现递归本身可能不需要动态内存,但是您正在使用递归来解决的问题可能需要它。