我正在研究一個簡單的程序,該程序將獲取給定變量的內存地址,最多爲64位(無符號長整數)。目前這是我有的代碼,但由於某種原因,編譯器正在向我發出警告,說我的方法正在返回本地變量的地址,這是我的意圖。函數返回本地變量的地址[-Wreturn-local-addr]
int main(int argc, char *argv[])
{
char* one = argv[1];
long memaddress = address(one);
}
uint64_t address(char * strin)
{
return (uint64_t) &strin;
}
我該如何緩解此警告,並且可能會導致此警告出現?
這是一個小的功能,爲什麼不報警;噸你去MACRO? –
@SouravGhosh:從不使用函數可以工作的宏。但那也是無稽之談。 – Olaf
@Olaf,你打算做什麼?我計劃在地址函數中實現更多功能,但我會盡量簡單地提出問題。我將如何將地址傳遞給main? – WasabiCannon