我有这个C ++结构
struct PACKET
{
BOOL isTCPPacket;
BOOL isUDPPacket;
BOOL isICMPPacket;
BOOL isIGMPPacket;
BOOL isARPPacket;
BOOL isIPPacket;
struct PETHER_HEADER
{
string DestinationHost;
string SourceHost;
struct PROTOCOL_TYPE
{
string Name;
WORD Identifier;
} ProtocolType;
} EthernetHeader;
};
我有
PACKET* Packet;
PACKET* Packets[6];
我如何将Packet的内容复制到Packets [3]中,例如,知道Packet的内容对于Packets中的每个阵列都会有所不同[INDEX]
我尝试过memcpy作为
memcpy((void*)&Packets[i],(void*)&Packet,sizeof(PACKET));
没有运气
最佳答案
Packets[3] = Packet;
怎么样?这完全符合您的要求(将作为指针的Packet
的内容复制到Packets[3]
中)。
如果要复制值,则也可以使用赋值:*(Packets[3]) = *Packet;
,假设指针有效。编译器为PACKET
生成的赋值运算符应该可以正常工作。
在这种情况下,我会避免使用memcpy
,因为某些成员是std::string
-您一定会遇到麻烦。