检查变量是否静态或动态分配?

标签 c malloc free

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

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

void free(void *p)

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

free(foo)

最佳答案

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

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

关于检查变量是否静态或动态分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438004/

相关文章:

c - 在代码中查找变长数组

c - scanf 将 "junk"值赋给变量

C 编程 free() 函数错误

c - 如果程序由于错误而提前退出,释放动态分配内存的正确方法是什么?

c - 释放后如何打印链表?

java - C 和 Java 通过 Jni

c - 指向现有数组而不是副本的指针

c - C 中 malloc 的内存泄漏问题

c++ - Malloc 在 main() 或任何其他函数之外(即在全局范围内)

c - 双指针的 malloc 段错误