数据结构的堆栈,和内存空间的堆栈有什么区别和关系吗?
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
在编写程序时(比如C、C++等),可以简单地把内存分为三个不同的区域:
1、栈,即我们平常说的堆栈,英文为stack,存放自动变量、函数调用产生的临时变量等,该内存空间由编译器自动分配、释放以及管理,访问效率高,但不灵活,空间也小。
2、堆,英文为heap,该内存空间需要程序员手动申请、释放,如C的malloc、free以及C++的new、delete等,平常说的内存泄露就是操作堆引起的,由于需要手动管理,所以访问效率较低,但可以根据需要灵活使用。
3、静态存储区,也是编译器自动管理的,用于存放全局变量、局部静态变量等,与栈中变量的区别是在程序运行期间一直保存变量的值。
- 2 回答
- 0 关注
- 1049 浏览
添加回答
举报
0/150
提交
取消