在学校,我被要求编写4个函数:
void *memory_alloc(unsigned int size);
int memory_free(void *valid_ptr);
int memory_check(void *ptr);
void memory_init(void *ptr, unsigned int size);
函数malloc在我的描述中是这样描述的:
使用memory_alloc具有类似的标准malloc。就这样输入参数可能会受到要返回的对象的影响:指向已成功分配的预留保留区域的指针,或者为NULL无法排除所需大小的地方。
基本上,我必须在不使用malloc和类似函数的情况下分配内存,我只想问一些想法和技巧,该怎么做?谢谢大家的帮助:)
我有类似的作业回到学校,如果您愿意,我可以给您一个入门提示。您将需要一个检查内存的函数,例如:
t_chunk *find_chunk(t_chunk *temporary, void *pointer)
{
if (pointer == NULL)
return (NULL);
while (temporary != NULL)
{
if (temporary->address == pointer)
return (temporary);
temporary = temporary->next;
}
return (NULL);
}
然后是其他使用该逻辑来释放,调用或初始化的函数。您就像在数组中那样在内存中运行,然后执行您的任务。