1.申请的是虚拟内存空间,当访问时候才真正的分配内存,这也就是说 malloc 并不会去初始化申请空间里的数据。
2.申请的空间小于128k时候 用 brk() 函数实现,在堆中去推 _edata 的指针 ,大于128k时候 用mmap()函数实现;
3.释放的时候用 free()函数。
4.合并空闲区域
5.内存紧缩
malloc底层实现的理解
最新推荐文章于 2023-01-10 12:14:32 发布
1.申请的是虚拟内存空间,当访问时候才真正的分配内存,这也就是说 malloc 并不会去初始化申请空间里的数据。
2.申请的空间小于128k时候 用 brk() 函数实现,在堆中去推 _edata 的指针 ,大于128k时候 用mmap()函数实现;
3.释放的时候用 free()函数。
4.合并空闲区域
5.内存紧缩