覆盖malloc的问题 [英] Problem in overriding malloc
本文介绍了覆盖malloc的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试通过这样做来覆盖malloc。
I am trying to override malloc by doing this.
#define malloc(X) my_malloc((X))
void* my_malloc(size_t size)
{
void *p = malloc(size);
printf ("Allocated = %s, %s, %s, %x\n",__FILE__, __LINE__, __FUNCTION__, p);
return p;
}
但是,这将无限期地递归调用my_malloc(因为在my_malloc内部调用了malloc) 。我想在my_malloc而不是宏实现中调用C malloc函数。
However, this is indefinitely calling my_malloc recursively (because of malloc call inside my_malloc). I wanted to call C malloc function inside my_malloc and not the macro implementation. Could you please let me know how to do that?
谢谢。
推荐答案
问题已解决:
void* my_malloc(size_t size, const char *file, int line, const char *func)
{
void *p = malloc(size);
printf ("Allocated = %s, %i, %s, %p[%li]\n", file, line, func, p, size);
return p;
}
#define malloc(X) my_malloc( X, __FILE__, __LINE__, __FUNCTION__)
这篇关于覆盖malloc的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文