gpt4 book ai didi

将结构复制到 char* 缓冲区

转载 作者:行者123 更新时间:2023-11-30 15:11:02 24 4
gpt4 key购买 nike

基本上我有一个包含不同类型数据的自定义结构。例如:

typedef struct example_structure{
uint8_t* example_1[4];
int example_2[4];
int example_3;
} example_structure;

我需要做的是将这个结构的上下文复制到const char* buffer,这样我就可以使用winsock2的发送复制的数据(buffer) send(SOCKET s, const char* buffer, int len, int flags) 函数。我尝试使用 memcpy() 但我不是只复制指针地址而不复制数据吗?

最佳答案

是的,如果您通过套接字复制或发送该结构,您最终会复制/发送指针,这对于接收者来说显然毫无意义,但是,如果接收者在不同的硬件上运行(例如,不同的字节序) ,无论如何,所有数据都可能毫无意义。除此之外,结构成员之间的填充量差异也可能成为一个问题。

对于重要的情况,最好使用现有协议(protocol)(例如 protobuf ),或推出您自己的协议(protocol),同时记住数据的硬件表示的潜在差异。

关于将结构复制到 char* 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com