如何使用memcpy在C ++中复制包含指针的结构

问题描述 投票:0回答:1

我有如下结构:

struct Header {
    uint16_t length;
    const char* data;
};

然后,我有一个像这样的数组:

Header* buffer = new Header[100];

我有一个指向有效负载指针的地址,其定义如下:

uint8_t* payloadAddres;

我想将我的数据从缓冲区复制到有效负载地址。当我只执行以下操作时:

memcpy(payloadAddress, buffer, sizeof(buffer))

并且,当我在使用python或Wireshark接收到的数据包中看到数据时,var length具有适当的值,但是数据显示了一个巨大的十六进制数,这与我在struct数据中存储的十六进制数不相等。

例如:

我在数据字段中存储了“ aaaa”。但是我认为我刚得到地址,因为它是一个指针。

谁能告诉我复制包含指向有效负载地址的指针的结构数组的正确方法是什么?

c++ pointers struct memcpy
1个回答
0
投票

尝试:

memcpy(payloadAddress, buffer, sizeof(*buffer))
© www.soinside.com 2019 - 2024. All rights reserved.