如何将struct内容复制到另一个数组结构

Anw*_*med 0 c++ struct visual-c++

我有这个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;
};
Run Code Online (Sandbox Code Playgroud)

我有

PACKET* Packet;
PACKET* Packets[6];
Run Code Online (Sandbox Code Playgroud)

如何将Packet的内容复制到数据包[3],例如,知道数据包内容因数据包中的每个数组而异[INDEX]

我试过memcpy作为

memcpy((void*)&Packets[i],(void*)&Packet,sizeof(PACKET));
Run Code Online (Sandbox Code Playgroud)

没有运气

Luc*_*ore 5

怎么样Packets[3] = Packet;?这完全符合您的要求(Packet将指针的内容复制到其中Packets[3]).

如果要复制值,也可以使用赋值:*(Packets[3]) = *Packet;假设指针有效.编译器生成的赋值运算符PACKET应该可以正常工作.

memcpy在这种情况下,我会避免,因为有些成员std::string- 你一定会遇到麻烦.