你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
【3.21签到】每日问答——Heap与stack的差别
[复制链接]
苏柚
提问时间:2016-3-21 08:31 /
赞
0
收藏
0
评论
103
分享
发布时间:2016-3-21 08:31
请先
登录
后回复
103个回答
creep
回答时间:2016-3-21 08:39:37
a0a.1 32b0c
赞
0
评论
回复
支持
反对
巧子儿
回答时间:2016-3-21 09:05:09
a0a.1 32b0c
heap内存由程序员分配释放,stack内存由编译器自动分配释放
赞
1
评论
回复
支持
1
反对
0
yuazhang
回答时间:2016-3-21 10:37:30
a0a.1 32b0c
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
堆和栈的区别:
1、管理方式不同;
2、空间大小不同;
3、能否产生碎片不同;
4、生长方向不同;
5、分配方式不同;
6、分配效率不同;
赞
0
评论
回复
支持
反对
荣丰宇
回答时间:2016-3-21 10:26:49
a0a.1 32b0c
heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
赞
0
评论
回复
支持
反对
yanhaijian
回答时间:2016-3-21 08:39:41
a1024a.1 32b0c
天天签到。
赞
0
评论
回复
支持
反对
zhangdaijin
回答时间:2016-3-21 08:40:35
a0a.1 32b0c
签到先
赞
0
评论
回复
支持
反对
jundao721
回答时间:2016-3-21 08:47:44
a0a.1 32b0c
Heap内存由程序员分配释放,stack内存由编译器自动分配释放
赞
0
评论
回复
支持
反对
hello!
回答时间:2016-3-21 08:48:47
a1024a.1 32b0c
赞
0
评论
回复
支持
反对
wujianwei3980-5
回答时间:2016-3-21 08:50:08
a1024a.1 32b0c
签到。。。。。。。。。。。。。。。
赞
0
评论
回复
支持
反对
zhoupxa
回答时间:2016-3-21 08:54:04
a0a.1 32b0c
签到签到
堆与栈,一言难尽啊
赞
0
评论
回复
支持
反对
弋江浪子
回答时间:2016-3-21 08:55:40
a0a.1 32b0c
【3.21签到】领金币
赞
0
评论
回复
支持
反对
不晓得10
回答时间:2016-3-21 09:03:48
a0a.1 32b0c
签到
赞
0
评论
回复
支持
反对
adlu
回答时间:2016-3-21 09:04:54
a1024a.1 32b0c
签到。。。
赞
0
评论
回复
支持
反对
disheng4688
回答时间:2016-3-21 09:05:47
a1024a.1 32b0c
签到签到
赞
0
评论
回复
支持
反对
hjf2002
回答时间:2016-3-21 09:05:47
a1024a.1 32b0c
签到签到
赞
0
评论
回复
支持
反对
烟花绽放
回答时间:2016-3-21 09:06:51
a1024a.1 32b0c
签到签到
赞
0
评论
回复
支持
反对
Mandelbrot_Set
回答时间:2016-3-21 09:07:08
a0a.1 32b0c
QIANDAO
赞
0
评论
回复
支持
反对
1
2
3
4
5
6
7
/ 7 页
下一页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
堆和栈的区别:
1、管理方式不同;
2、空间大小不同;
3、能否产生碎片不同;
4、生长方向不同;
5、分配方式不同;
6、分配效率不同;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
堆与栈,一言难尽啊