01存储紧缩
1、在整个动态存储管理过程中,不管哪个时刻,可利用空间都是一个地址连续的存储区,在编译程序中称之为“堆”,每次分配都是从这个可利用空间中划出一块。
2、其实现办法是,设立一个指针,称之为堆指针,始终指向堆的最低(或最高)地址。
3、堆结构的存储管理的分配算法非常简单,反之,回收用户释放的空闲块就比较麻烦。
4、由于系统的可利用空间始终是一个地址连续的存储块,因此回收时必须将所释放的空闲块合并到整个堆上去才能重新使用,这就是“存储紧缩”的任务。
5、通常有两种做法:一种是一旦有用户释放存储块即进行回收紧缩,另一种是在程序执行过程中不回收用户随时释放的存储块,直到可利用空间不够分配或堆指针指向最高地址时才进行存储紧缩。
更多案例可以go公众号:C语言入门到精通
正文完