现在,一般来说,我们可以实现malloc使得对malloc的调用将会被映射到系统调用sbrk上,sbrk(n)将会移动程序中断的位置-也就是程序的data段的最后.-偏移n个字节,这意味着,n个字节的内存就被分配给了当前程序 我们最终的实现大概看起来会像这样 void* malloc (unsigned n) { return sbrk(n); } 然而,调用一次sbrk是非常昂贵的.因此,如果我们的malloc实现,通过一次sbrk调用分配到了一块很大的内存块,当需要的时候再把这块内存分成更小…