完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
内存空间分布
数据段 = 全局 + 只读 内存中的栈区处于相对高的地址,如果以地址的增长的方向为上的话,栈地址是向下增长、堆地址是向上增长。 数据结构的堆栈 栈:一种先进后出的数据结构 堆:堆可以被看成是一棵树,如:堆排序 内存中的堆栈 栈:由操作系统(编译器)自动分配、释放,存放函数的参数值,局部变量等,被调用时处在存储空间中,调用完毕立即释放。 堆:一般由程序员申请、分配、释放,通过new 、malloc等 比较 回收方式 栈:自动分配,自动回收,比如定义一个char a; 栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。 堆:程序员按需申请需要的大小空间,例如: malloc(5 * sizeof(int) ); 开辟个5个整形数据大小的空间,只要程序员不free()就一直可以访问到,不过这是危险的,忘记释放会造成内存泄漏。 申请效率 栈:由系统分配,速度较快。 栈:由new分配的内存,一般速度比较慢。 申请大小 栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存区域。指栈顶的地址和栈的最大容量是系统预定好的。所以,能从栈获得的空间较小。 栈:堆是向高地址扩展的数据结构,是不连续的内存分布。因为系统是用链表来储存空闲内存地址的。所以,堆课获得能申请的空间灵活,也比较大。 |
|
|
|
只有小组成员才能发言,加入小组>>
671 浏览 0 评论
1095 浏览 1 评论
2461 浏览 5 评论
2790 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2625 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
643浏览 9评论
639浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
770浏览 6评论
614浏览 5评论
656浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 12:05 , Processed in 0.375895 second(s), Total 45, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号