深入理解glibc malloc:malloc 与 free() 原理图解( 三 )


11、使用mmap系统调用为程序的内存空间映射一块chunk_size align 4kB大小的空间 。然后将内存指针返回给用户 。
12、判断是否为第一次调用malloc,若是主分配区,则需要进行一次初始化工作,分配一块大小为(chunk_size + 128KB) align 4KB大小的空间作为初始的heap 。若已经初始化过了,主分配区则调用sbrk()增加heap空间,分主分配区则在top chunk中切割出一个chunk,使之满足分配需求,并将内存指针返回给用户 。




推荐阅读