你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

楼主: 苏柚

【3.21签到】每日问答——Heap与stack的差别

   关闭 [复制链接]
回帖奖励 206 ST金币 回复本帖可获得 2 ST金币奖励! 每人限 1 次

1

主题

12

回帖

0

蝴蝶豆

初级会员

最后登录
2017-2-28
发表于 2016-3-21 10:11:51 | 显示全部楼层

回帖奖励 +2 ST金币

回复 支持 反对

使用道具 举报

5

主题

115

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-2-12
发表于 2016-3-21 10:19:32 | 显示全部楼层

回帖奖励 +2 ST金币

heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
回复 支持 反对

使用道具 举报

5

主题

115

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-2-12
发表于 2016-3-21 10:20:27 | 显示全部楼层
heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
回复 支持 反对

使用道具 举报

0

主题

1172

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-12-8
发表于 2016-3-21 10:25:24 | 显示全部楼层

回帖奖励 +2 ST金币

签到签到
回复 支持 反对

使用道具 举报

15

主题

571

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-12-3
发表于 2016-3-21 10:26:46 | 显示全部楼层

回帖奖励 +2 ST金币

1、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收,分配方式倒是类似于链表。
2、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
回复 支持 反对

使用道具 举报

5

主题

115

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-2-12
发表于 2016-3-21 10:26:49 | 显示全部楼层
heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
回复 支持 反对

使用道具 举报

1

主题

902

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-12-7
发表于 2016-3-21 10:35:22 | 显示全部楼层

回帖奖励 +2 ST金币

1、堆: 一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收
2、栈:由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
回复 支持 反对

使用道具 举报

0

主题

161

回帖

0

蝴蝶豆

高级会员

最后登录
2020-12-5
发表于 2016-3-21 10:37:30 | 显示全部楼层

回帖奖励 +2 ST金币

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
  栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
  堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
     堆和栈的区别:
      1、管理方式不同;
  2、空间大小不同;
  3、能否产生碎片不同;
  4、生长方向不同;
  5、分配方式不同;
  6、分配效率不同;
回复 支持 反对

使用道具 举报

0

主题

762

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-8-18
发表于 2016-3-21 10:37:50 | 显示全部楼层

回帖奖励 +2 ST金币

.heap是堆,stack是栈。2.stack的空间由操作系统自动分配和释放,heap的空间是程序员申请和释放的
回复 支持 反对

使用道具 举报

4

主题

786

回帖

7

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2016-3-21 10:37:50 | 显示全部楼层

回帖奖励 +2 ST金币

签到
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版