我的main()應該得到一個地址作爲輸入,它需要存儲在void*
地址中。將void *類型傳遞給main()函數
int main(int argc, char *argv[])
{
if (argc > 1) {
HandleStr = argv[1];
printf("\n Handle passed : %s\n",HandleStr);
}
}
我想要這個HandleStr作爲類型void *
。我怎樣才能做到這一點?
現在,我想在運行exec爲./testapp "0xaf6e9800"
您知道在現代操作系統上進程具有虛擬地址空間,更重要的是每個進程的虛擬地址空間與其他進程是分開的。這意味着一個進程中的有效地址很可能在另一個進程中無效,即使它有效,也不能保證它指向類似的數據。 –
'argv []'中的參數總是字符串(char *)。所以你輸入的地址必須先轉換爲數字,然後作爲指針處理。 –
如果你想在兩個進程之間共享內存,那麼稱爲[*共享內存*](https://en.wikipedia.org/wiki/Shared_memory_%28interprocess_communication%29),甚至在使用實際地址時這兩個過程最有可能不同。 –