实际上我正在挂钩内存管理功能但是我遇到的一个问题是我无法获取指向我的钩子函数中分配内存的指针名称。 我的意思是... 假设Myfunction()通过new运算符将内存分配给指针Myptr,如下所示。
Myfunction()
{
int * Myptr = new int;
}
现在我想要当我的钩子函数“Mynew”被调用进行内存分配时,它应该知道为其分配内存的指针Myptr的名称。
答案 0 :(得分:1)
这是不可能的。
您可以使用宏执行类似操作,以便将变量名称传递给函数:
#define NEWPTR(var, type) type * var = allocate_memory(type, #var)
答案 1 :(得分:1)
指针名称仅在编译时已知,而不是在运行时。此外,分配new int
是一个与Myptr
变量赋值分开的表达式。你正在重新定义分配器,而不是指针的赋值运算符(我希望!)......
正如@Sjoerd建议的那样,你可以通过引入一个调用你自己的分配函数的宏来为你自己的代码得到这样的东西。我不确定这是否是你真正需要的。