2010-07-01 85 views
0

其实我挂钩了内存管理函数,但是我面临的一个问题是我无法获取指向内存被分配到我的挂钩函数中的指针名称。 我的意思是... 假设Myfunction()通过下面的geven将新内存分配给指针Myptr。如何获取指针名称

Myfunction() 
{ 
    int * Myptr = new int; 
} 

现在,这里我想,当我迷上功能“Mynew”之称的内存分配,就应该知道谁内存被分配指针Myptr的名称。

回答

1

这是不可能的。

你可以做一个宏类似的东西,所以它传递的变量名的函数:

#define NEWPTR(var, type) type * var = allocate_memory(type, #var) 
+1

http://stackoverflow.com/questions/359237/解释了为什么这是不可能的。 – 2010-07-01 09:35:43

1

指针名是唯一已知的在编译的时候,而不是在运行时。此外,分配new int是一个表达式,与将其分配给Myptr变量的表达式分开。你正在重新定义分配器,而不是指针的赋值操作符(我希望!)...

正如@Sjoerd所示,通过引入一个调用自己的分配函数的宏,您可以为自己的代码得到类似的结果。我不确定这是否是你真正需要的。