我正在实现自己的malloc和免费功能。如何通过动态分配的变量传递静态变量的错误检查? 假设我有:
char foo[10];
void *bar = malloc(5);
void free(void *p)
有没有办法告诉用户这是一个错误?
free(foo)
答案 0 :(得分:5)
最好的办法是在内存管理功能中维护一个已分配指针的表。
在释放内存时不要忘记删除条目。
答案 1 :(得分:0)
这可能听起来很疯狂,
您需要在列表/结构中维护自定义malloc()函数的已分配指针。然后在使用自定义free()函数时,检查维护列表/结构中是否存在变量。