首先,从逻辑实现来说,动态内存分配需要一个内存管理程序,记录内存的分配大小、释放节点、空余节点,甚至添加一堆调试信息,这些操作需要额外占用内存,因此,实际使用的物理内存会大于申请的内存空间。其次,频繁的不同长度的动态内存分配与释放可能造成内存碎片。例如,将一连串100字节内存分配出去,其中一块内存...
首先,动态内存分配需要一个内存管理程序来记录分配和释放的内存,这会增加额外的内存开销。其次,频繁的动态内存分配和释放可能会导致内存碎片。例如,如果连续分配了多个小块内存,其中一块被释放了,然后又申请了一块稍小的内存,就会产生碎片。当碎片越来越多时,会导致内存利用率下降。为了避免这种情况,通常会进行内存对齐...