stl 地图 与 list 配合使用的有关问题 急死人了

stl map 与 list 配合使用的问题 急死人了


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));