8.5 存储紧缩

01存储紧缩

1、在整个动态存储管理过程中,不管哪个时刻,可利用空间都是一个地址连续的存储区,在编译程序中称之为“堆”,每次分配都是从这个可利用空间中划出一块。

2、其实现办法是,设立一个指针,称之为堆指针,始终指向堆的最低(或最高)地址。

3、堆结构的存储管理的分配算法非常简单,反之,回收用户释放的空闲块就比较麻烦。

4、由于系统的可利用空间始终是一个地址连续的存储块,因此回收时必须将所释放的空闲块合并到整个堆上去才能重新使用,这就是“存储紧缩”的任务。

5、通常有两种做法:一种是一旦有用户释放存储块即进行回收紧缩,另一种是在程序执行过程中不回收用户随时释放的存储块,直到可利用空间不够分配或堆指针指向最高地址时才进行存储紧缩。

C语言 | 三种样式的九九乘法表

更多案例可以go公众号:C语言入门到精通

正文完