关注
对于6,局部变量的栈内存和全局变量占用的.bss内存要分配的空间大小在编译期就已经确定了,是由程序已有指令自动分配的。
动态分配的话,主要是分配得到堆内存和mmap内存,动态分配栈内存可以通过 alloc() 函数。
堆内存的话,由堆管理器作为内存中间管理者。
堆管理器向操作系统申请内存主要通过 brk 和 mmap 两种系统调用,申请到的内存以 arena 的形式管理。其中,主线程申请的较小的内存使用 brk 系统调用直接在代码段的上方扩展空间得到,过大的内存申请则由 mmap 系统调用申请一个 mmap 段得到;而其它线程的堆空间只是由 mmap 系统调用提供。
而用户向堆内存管理器提出动态内存分配申请,则是通过坤坤你答过的一系列标准库函数 malloc()、realloc() 等,从已有的 arena 中获取由堆管理器以 chunk 形式管理起来的内存。
mmap 内存的话那就直接用封装了 mmap 系统调用的库函数 mmap() 喽。
查看原帖
点赞 2
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-09 19:49
门头沟学院 测试开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 聊聊这家公司值得去吗 #
233996次浏览 2187人参与
# kpi面有什么特征 #
32148次浏览 224人参与
# 你认为哪个岗位找工作最卷 #
12924次浏览 42人参与
# 职场人,说说你的烦心事 #
8584次浏览 71人参与
# 一人一个landing小技巧 #
79219次浏览 1125人参与
# 职场上哪些事情令人讨厌 #
16670次浏览 82人参与
# 秋招最大的收获是什么? #
33874次浏览 297人参与
# 小红书求职进展汇总 #
56109次浏览 485人参与
# 聊聊你的职场新体验 #
157466次浏览 1369人参与
# 机械制造岗投递时间线 #
22719次浏览 346人参与
# 职场吐槽大会 #
205430次浏览 1636人参与
# 研究所VS国企,该如何选 #
180619次浏览 1769人参与
# 为了找工作你投递了多少公司? #
9804次浏览 133人参与
# 大家每天通勤多久? #
42004次浏览 329人参与
# 通信硬件牛牛的实习日记 #
7167次浏览 65人参与
# 职场破防瞬间 #
234927次浏览 2125人参与
# 总结:哪家公司面试体验感最好 #
47636次浏览 338人参与
# tplink提前批进度交流 #
162734次浏览 1378人参与
# 找工作前vs找工作后的心路变化 #
9589次浏览 103人参与
# 担心入职之后被发现很菜怎么办 #
126373次浏览 754人参与