C中的malloc代码

use*_*466 1 c malloc implementation heap-memory

我有一个代码块似乎是背后的代码malloc.但是当我浏览代码时,我感觉部分代码丢失了.有没有人知道是否缺少一部分功能?是否malloc总是将相邻的块组合在一起?

int heap[10000];
void* malloc(int size) {
int sz = (size + 3) / 4;
int chunk = 0;
if(heap[chunk] > sz) {
    int my_size = heap[chunk];
    if (my_size < 0) {
      my_size = -my_size
    }
    chunk = chunk + my_size + 2;
    if (chunk == heap_size) { 
      return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

lhf*_*lhf 6

malloc背后的代码肯定要复杂得多.有几种策略.一个流行的代码是dlmalloc库.K&R中描述了一个更简单的方法.