繁体   English   中英

动态内存分配查询

[英]Dynamic Memory Allocation query

据我们所知

  • 动态内存分配使用堆区域。
  • 要实现递归,我们需要一个堆栈。

那么可以说要实现递归,我们将不需要动态内存分配吗?

我完全感到困惑。

递归本身仅需要堆栈。 例如,实现递归阶乘方法

int fact(int n) {
    if (n <= 1) return 1;
    return n * fact(n - 1);
}

只需要堆栈。 n - 1 ,在其上调用fact ,然后将结果(可能还会在堆栈上返回)乘以n 但是,即使递归操作本身不需要动态内存,您通过递归实现的算法也可能涉及需要动态内存的任务。 因此,没有实现递归本身可能不需要动态内存,但是您正在使用递归来解决的问题可能需要它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM