我正在做一個udp客戶端服務器模型的事情,我的問題基本上歸結爲不能在這個簡短的程序中打印數字65000。我得到的輸出是:0
在C++中解包數據包
struct pHeader{
uint16_t from = -1;
} pHead;
void formatPacket(pHeader header, char buffer[]) {
uint16_t u16;
u16 = header.from;
memcpy(buffer+2, &u16, 2);
}
int main() {
cout << "buffer" << endl;
char buffer[10];
pHead.from = 65000;
formatPacket(pHead, buffer);
cout << atoi(buffer+2) << endl;
}
我想要做的下一件事是打印過的值在說的也是16位的數組的第一個元素。我相信是這樣的做:
.
.
.
buffer[2] = 0;
cout << atoi(buffer+0) << endl;
你認爲是什麼讓那個的memcpy的'反向()'是' atoi()'? –
爲什麼你使用C++標籤?這是C與Cout。 – 2017-06-04 07:47:39