UNIX编程学习——malloc与free的实现(C)
摘要:
以下是K&R第二版中文版原话: malloc不是分配一个编译时已知的固定大小的数组,而是当需要时向操作系统申请空间。由于程序中的其他地方需要申请空间,并不一定通过调用malloc实现,因此由malloc管理的空间不一定是连续的。因此空闲的存储空间以空闲块列表的方式保存,每个块包含有一个长度、指向下一个的指针和自己的存储空间。这些块以地址的上升顺序排列在一起,最后一块(最高地址)指向第一块。 当有申请请求时,扫描空闲块列表以找到一个足够大的块,这个算法称为“最先匹配”;与之对应的算法是“最优匹配”它寻找满足条件且最小的块。如果这个块刚好与请求的大小相符合,将它从链表中移走并返回给用户。如 阅读全文
posted @ 2011-08-08 23:51 confide 阅读(353) 评论(0) 推荐(0)
浙公网安备 33010602011771号