C ++中的内存分配区域(堆栈vs堆vs静态)

我知道在C ++中有三个,而不是两个内存区域:堆栈,堆和静态指定功能的区域。 我有两个问题

  • 为什么堆比堆栈慢得多? 当然,它应该只是一个额外的间接水平?

  • 分配给静态“特性”(变量,函数,类)的内存区域是否比堆提供更快的性能?


  • 首先有几个旁注。 正确的术语是自动而不是堆栈,动态而不是堆。 另一个是用C ++ 11,现在有四种而不是三种类型的内存。 C ++ 11为混合添加了线程本地内存。

    自动存储是快速的,因为它是在大多数机器上使用调用堆栈实现的。 所需要的就是通过适量调整堆栈指针,瞧! 内存分配。 动态内存需要更多的工作。 必要的内存可能没有附加到进程中,要实现这一点需要 链接地址: http://www.djcxy.com/p/13803.html

    上一篇: Memory allocation areas in C++ (Stack vs heap vs Static)

    下一篇: C++ Difference between *new and new