检查变量是静态还是动态分配?

时间:2014-12-12 06:23:00

标签: c malloc free

我正在实现自己的malloc和免费功能。如何通过动态分配的变量传递静态变量的错误检查? 假设我有:

char foo[10];
void *bar = malloc(5); 

void free(void *p)

有没有办法告诉用户这是一个错误?

free(foo)

2 个答案:

答案 0 :(得分:5)

最好的办法是在内存管理功能中维护一个已分配指针的表。

在释放内存时不要忘记删除条目。

答案 1 :(得分:0)

这可能听起来很疯狂,

您需要在列表/结构中维护自定义malloc()函数的已分配指针。然后在使用自定义free()函数时,检查维护列表/结构中是否存在变量。