我在C编程方面真的很糟糕。我被要求做以下任务
实现类似于内存分配库的malloc。
声明一个20000字节的数组。
您必须实现类似于malloc()的函数。称之为MyMalloc()。它的签名类似于malloc()。您还应该实现MyFree(),它的签名和功能与free()相似。
MyMalloc()仅从前面提到的20000字节数组中分配内存。
管理内存所需的所有数据结构也必须驻留在同一阵列中。
MyMalloc()和MyFree()必须位于名为mymalloc.c的文件中。您还应该提供合适的头文件mymalloc.h。
有人可以告诉我如何解决这个问题。我真的很笨先感谢您。
最佳答案
好的-这是一个起点-实际的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
}
请注意,您可能需要一个合适的数据结构来管理内存池中的分配-通常为此使用一个或多个链接列表,但是有替代方法。