我在C编程方面真的很糟糕。我被要求做以下任务 实现类似内存分配库的malloc。
声明一个20000字节的数组。
您必须实现类似malloc()的函数。称之为MyMalloc()。它的签名类似于malloc()。您还应该实现MyFree(),它具有与free()类似的签名和功能。
MyMalloc()仅从前面提到的20000字节数组中分配内存。
管理内存所需的所有数据结构也必须位于同一个数组中。
MyMalloc()和MyFree()必须位于名为mymalloc.c的文件中。您还应该提供合适的头文件mymalloc.h。
有人可以告诉我如何解决这个问题。我真的很无能为力。先感谢您。
答案 0 :(得分:0)
好的 - 这是一个起点 - 实际的MyMalloc
/ MyFree
函数的实现留给你做...
文件:mymalloc.h
#include <stdlib.h>
void * MyMalloc(size_t size);
void MyFree(void * ptr);
文件:mymalloc.c
#include "mymalloc.h"
#define POOL_SIZE 20000
static char pool[POOL_SIZE];
void * MyMalloc(size_t size)
{
// TBD
}
void MyFree(void * ptr)
{
// TBD
}
请注意,您可能需要一个合适的数据结构来管理内存池中的分配 - 通常会使用一个或多个链接列表,但也有其他选择。