堆、栈及静态数据区详解.pdfVIP

  • 4
  • 0
  • 约9.37千字
  • 约 14页
  • 2026-04-12 发布于河北
  • 举报

内存分为代码区、全局数据区、堆区和栈区。堆一般存放动态数据,栈里一般存放局

部成员。

关于堆栈和堆的概念

[问题]

C++中创建本地(或者说局域)变量是在堆栈(stack)中安内存地址,而创建全

局变量则是在堆(heap)中安内存地址。我想知道什么是堆(heap)?为什么全局变

量和本地变量在安内存地址时要分别对待,堆和堆栈哪一个更有效率?

[回答]

在Window中执行的一个应用程序都有其自己的内存地址。一部分内存空间用于存

放程序代码,一部分内存空间用于存放程序执行期间创建的变量。创将变量的方法有两种,

一种是在堆中,此外一种则在堆栈里。

理解堆的最好的方法是将它看成一个程序随时可以使用的内存块。为了创建堆变量,

程序要使用new”(在C++里)操作符或者malloc”(在C中)例程,它们返回指向

变量的指针(堆变量总是通过指针来处理和操作\最终程序用“delete”(在C++里)操

作符成者free(在C中)例程来删除或者释放内存空间.

而堆栈则不同,它是某个函数被调用后随时可以创

文档评论(0)

1亿VIP精品文档

相关文档