C语言 检查变量是否是静态或动态分配的



我正在实现我自己的malloc和free函数。如何进行错误检查,将静态变量传递到动态分配的变量上?假设我有:

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

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

free(foo)

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

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

听起来可能很疯狂,

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

相关内容

  • 没有找到相关文章

最新更新