C语言系统没有内置的内存管理机制,通常是在需要使用内存的时候,动态的通过malloc在堆空间申请内存。这种做法有一定的缺陷,在较大的系统中往往会自己做内存分配管理,我想原因大致如下:
1)内存申请操作是比较耗时的,所以可以通过把预先申请的内存划分为桶,运行时需要内存时从桶中申请,使得申请速度加快。
2)有时申请内存是不希望失败的,由于运行时所需要的内存都已经预先申请了,保证了运行时需要内存时再从中申请就一定会成功。
3)有些系统上malloc是非线程安全的或者不可重入的,预先分配能通过自己管理来解决这个问题。
(完)