我想请你帮助我自己的项目。我想尝试用我自己的函数替换原来的 malloc、自由函数,这些函数将具有相同的行为。
int memory_free(void *ptr){}
void memory_init(void *ptr, unsigned int size){}
void *memory_alloc(unsigned int size){}
memory_init 函数将创建一个可以使用的内存。在开始时会有一个指针,例如 *Memory,它将是 memory_init 的参数。Memory init 只会在程序开始时被调用一次。
#include <string.h>
int main()
{
char region[50];
memory_init(region, 50);
char* pointer = (char*) memory_alloc(10);
if (pointer)
memset(pointer, 0, 10);
if (pointer)
memory_free(pointer);
return 0;
}
此代码是测试我的功能的示例。Memory_init 将初始化内存,而 memory_alloc 将为每次调用在此内存中创建块。如果有人知道如何制作它,我将很高兴看到您的回答。对不起我的英语不好。谢谢。
对于 memory_init 我有这个
*Memory;
void memory_init(void *ptr, unsigned int size){
*((unsigned int*)ptr)=size; //at first position there will be size of whole memory;
}
我的想法是做一块内存,里面会有一个小块。每个块都会有头。在第一个位置会有块的大小,在它之后会有标签,如果它是空闲的,在它之后会有块的结尾。