堆和栈的区别,分配释放

如题所述

堆一般是编程序时用malloc,new这样的函数申请的空间,然后程序用free,delete来释放
栈用于程序在调用子程序时保护现场;当子程序包含参数、子程序内包含变量定义、程序包含大括号内变量定义这些情况时,会在堆栈申请空间,然后在结束调用、程序执行出大括号时自动释放,一般栈的使用是高级语言程序不涉及的,由编译程序安排分配和释放。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-28
堆和栈的区别
一、堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。本回答被网友采纳
相似回答