我在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
}


请注意,您可能需要一个合适的数据结构来管理内存池中的分配-通常为此使用一个或多个链接列表,但是有替代方法。

07-24 13:20