#define ECHOMAX 100
struct tDataPacket
{
int iPacket_number;
char sData[ECHOMAX];
};
int main () {
tDataPacket packet;
packet.iPacket_number=10;
strcpy(packet.sData,"Hello world");
char buffer[sizeof(tDataPacket)];
memcpy(buffer,&packet.iPacket_number,sizeof(int));
memcpy(buffer+sizeof(int),packet.sData,ECHOMAX);
std::cout<<"Buffer = "<<buffer<<"END";
return 0;
}
在上面的代码中,我试图将我的结构打包在一个 char[] 缓冲区中,以便我可以将它发送到一个 UDP 套接字。但是程序的输出是“”字符串。所以没有任何东西被复制到“缓冲区”。我错过了什么吗??