C - 将两个结构附加到单个缓冲区

标签 c pointers struct buffer memcpy

我需要这样做,以便两个结构的内容将位于两个结构大小的单个缓冲区内。我需要使用 memcpy 来执行此操作。

这是我当前的代码:

struct Header header;
struct Data_Format DF;

char *buffer[28];

header.Start = 0x7E;
header.Options = 0x00;

DF.Address = 0x007CB;
DF.Result = 0x105BA;

memcpy(buffer,&header,sizeof(header));

我如何才能使 DF 结构在 header 完成的地方继续?

最佳答案

试试这个:

char buffer[sizeof(header)+sizeof(DF)];
...
memcpy(buffer,&header,sizeof(header));
memcpy(buffer+sizeof(header),&DF,sizeof(DF));

关于C - 将两个结构附加到单个缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758920/

相关文章:

更改 C 中结构的变量

C 宏使用文字与变量产生不同的结果

c - 不从 C 中的结构打印字符串

arrays - C 数组排序中交换最后一个元素的问题

c - 小段代码出现段错误(核心转储)错误

malloc 在 struct 上的 C 用法

c - 未定义的行为和序列点

c - 仅分配一次时,3 个字符串获得相同的值

Cygwin64终端: Undefined reference to `mbuf_remove`

c++ - 发送一个字符串变量作为参数来打开一个文件