作者Arim (Arim5566)
看板C_and_CPP
標題[問題] memcpy的用法
時間Sun Nov 4 00:28:26 2012
各位版友好
最近在寫網路相關的程式
想請問一下
如果我用
memcpy(packet->arp_spa,&(inet_addr(address)),4);
gcc會給我lvalue required as unary 「&」 operand
但是inet_addr(address)回傳的是一個long int
而我有用&把這個long int的位址提出來
如果我用
in_addr_t tmp=inet_addr(address)
memcpy(packet->arp_spa,&tmp,4);
用一個變數傳入memcpy就可以編譯
請問一下為甚麼第一種作法不行?
謝謝各位版友的指教
--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.169.131
※ 編輯: Arim 來自: 140.117.169.131 (11/04 00:29)
推 LPH66:函數回傳的東西可以當做一個暫時變數 你無法對暫時變數取址 11/04 00:38
→ LPH66:(專有名詞叫做 rvalue 啦, 不過這裡這麼理解即可) 11/04 00:39
推 Bencrie:不知道能不能用回傳值在 register 上來解釋 XD 11/04 12:31