stl 地图 与 list 配合使用的有关问题 急死人了
stl map 与 list 配合使用的问题 急死人了
打印的内容全部是错的。。。 为什么?里面的大小全部是错的。。不是我压入的数据包
但是我在下面加一句代码
memcpy(&st_DetachPacket,&stl_MapIterator->second.front(),sizeof(st_DetachPacket));
LogPrint(LV_INFO,_T("构建包中,IP地址:%s,包长度,%d,数据包需要总大小,%d当前大小:%d\n"),lpszClientAddr,nMsgLen,st_DetachPacket.st_ProtocolHdr.unDataSize,st_DetachPacket.usPacketLen);
打印的内容是对的。。。WHY?????莫名其妙啊。。。。。搞不懂了 哪位大侠说说
------解决方案--------------------
NETCENTER_DETACHLAYER_PACKET st_DetachPacket;
memset(&st_DetachPacket,'\0',sizeof(st_DetachPacket));
list<NETCENTER_DETACHLAYER_PACKET>::iterator stl_ListIterator = stl_MapIterator->second.begin();
for (;stl_ListIterator != stl_MapIterator->second.end();stl_ListIterator++)
{
memcpy(&st_DetachPacket,&stl_ListIterator,sizeof(NETCENTER_DETACHLAYER_PACKET));
LogPrint(LV_INFO,_T("拼凑包中,总大小%d,包大小:%d\n"),st_DetachPacket.st_ProtocolHdr.unDataSize,st_DetachPacket.usPacketLen);
}
打印的内容全部是错的。。。 为什么?里面的大小全部是错的。。不是我压入的数据包
但是我在下面加一句代码
memcpy(&st_DetachPacket,&stl_MapIterator->second.front(),sizeof(st_DetachPacket));
LogPrint(LV_INFO,_T("构建包中,IP地址:%s,包长度,%d,数据包需要总大小,%d当前大小:%d\n"),lpszClientAddr,nMsgLen,st_DetachPacket.st_ProtocolHdr.unDataSize,st_DetachPacket.usPacketLen);
打印的内容是对的。。。WHY?????莫名其妙啊。。。。。搞不懂了 哪位大侠说说
------解决方案--------------------
//memcpy(&st_DetachPacket,&stl_ListIterator,sizeof(NETCENTER_DETACHLAYER_PACKET));
memcpy(&st_DetachPacket,&*stl_ListIterator,sizeof(NETCENTER_DETACHLAYER_PACKET));