- 4
- 0
- 约9.37千字
- 约 14页
- 2026-04-12 发布于河北
- 举报
内存分为代码区、全局数据区、堆区和栈区。堆一般存放动态数据,栈里一般存放局
部成员。
关于堆栈和堆的概念
[问题]
C++中创建本地(或者说局域)变量是在堆栈(stack)中安内存地址,而创建全
局变量则是在堆(heap)中安内存地址。我想知道什么是堆(heap)?为什么全局变
量和本地变量在安内存地址时要分别对待,堆和堆栈哪一个更有效率?
[回答]
在Window中执行的一个应用程序都有其自己的内存地址。一部分内存空间用于存
放程序代码,一部分内存空间用于存放程序执行期间创建的变量。创将变量的方法有两种,
一种是在堆中,此外一种则在堆栈里。
理解堆的最好的方法是将它看成一个程序随时可以使用的内存块。为了创建堆变量,
程序要使用new”(在C++里)操作符或者malloc”(在C中)例程,它们返回指向
变量的指针(堆变量总是通过指针来处理和操作\最终程序用“delete”(在C++里)操
作符成者free(在C中)例程来删除或者释放内存空间.
而堆栈则不同,它是某个函数被调用后随时可以创
原创力文档

文档评论(0)