c - C 中的 malloc 代码

标签 c malloc implementation heap-memory

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

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;
    }
}

最佳答案

malloc 背后的代码肯定比那复杂得多。有几种策略。一个流行的代码是 dlmalloc图书馆。 K&R 中描述了一个更简单的方法。

关于c - C 中的 malloc 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583668/

相关文章:

c++ - 有谁见过 2-Sat 的实现吗

c - 使用 SDL_BlitScaled 创建缩放的曲面副本

c - 对每个数组进行处理

检查变量是否静态或动态分配?

我可以用分配的内存做我想做的事吗

c++ - OpenCV SURF 功能未实现

c++ - 链表的几种实现——C++

c - C中结构初始化的单元测试

C 常量字符串相等

c - 像这样超出范围会释放关联的内存吗?