3
我想在MessageBox中顯示函數的內存地址,但它不會像我想要的那樣顯示它。C++在MessageBox中顯示函數的地址
我想傳遞一個回調函數來另一個函數的函數地址,所以我試圖獲取其地址。
我看着this例如,試圖用一個消息顯示它首先不是打印到控制檯,使用它之前。
我怎麼試了一下:
char ** fun()
{
static char * z = (char*)"Merry Christmas :)";
return &z;
}
int main()
{
char ** ptr = NULL;
char ** (*fun_ptr)(); //declaration of pointer to the function
fun_ptr = &fun;
ptr = fun();
char C[256];
snprintf(C, sizeof(C), "\n %s \n Address of function: [%p]", *ptr, fun_ptr);
MessageBoxA(nullptr, C, "Hello World!", MB_ICONINFORMATION);
snprintf(C, sizeof(C), "\n Address of first variable created in fun() = [%p]", (void*)ptr);
MessageBoxA(nullptr, C, "Hello World!", MB_ICONINFORMATION);
return 0;
}
但是,這些消息框顯示非常大的數字,他們似乎空。
我喜歡在鏈接帖子的示例輸出中將它們顯示在一個消息框中。
在此先感謝。
在'(字符*) 「聖誕快樂:)」'中投是無用的,危險的,因爲字符串字面量已經是'常量char *' –
你期望函數指針的值看起來像什麼?我希望有一個「非常大的數字」。你是什麼意思,「他們似乎無效」,這似乎與「非常大的數字」相矛盾。 – Yunnosch
*你期望函數指針的值看起來像什麼?*像這樣:'0xxxxxxx'。 :-) **我喜歡將它們顯示在一個消息框中,就像鏈接後的示例輸出一樣。** – Blueeyes789