2010-07-01 70 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所示,通過引入一個調用自己的分配函數的宏,您可以爲自己的代碼得到類似的結果。我不確定這是否是你真正需要的。