u_char* data;
struct iphead *IPHead;
我想把IPHead的值付給data
*(data+14)= (u_char)IPHead;
我只改變了IPHead的源IP,可是賦值之后改變了協議版本和頭長度等其他的值。
uj5u.com熱心網友回復:
各位大神,有沒有好辦法賦值時只改變源IP二其余不受影響啊!uj5u.com熱心網友回復:
用memcpy,注意不要越界.uj5u.com熱心網友回復:
memcpy(data + 14, IPHead, sizeof(struct iphead));
你得保證data的緩沖長度足夠struct iphead加14的和
uj5u.com熱心網友回復:
還是會改變值uj5u.com熱心網友回復:
struct iphead里面是什么樣的?把你要改的東西寫出來
類似
memcpy(data + 14, IPHead->ip, 50);
uj5u.com熱心網友回復:
*(data+14)= (u_char)IPHead;IPHead是指標,把一個指標(32位或64位)強制轉成u_char,感覺很有問題。不知是樓主的筆誤還是程式就這樣子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/131754.html
標籤:網絡及通訊開發
上一篇:visual 2010 中出現error C2660: 'strcpy_s' : function does not take 2 arguments
