<分区>
假设我们有一个类似于那个的结构:
struct tree
{
unsigned short member1;
unsigned long member2;
unsigned char member3;
unsigned short member4;
};
那么,我们是否可以使用 memcpy
或其他任何东西将整个结构直接存储在缓冲区类型 char*
(自动化,因为结构可能特别大)?
<分区>
假设我们有一个类似于那个的结构:
struct tree
{
unsigned short member1;
unsigned long member2;
unsigned char member3;
unsigned short member4;
};
那么,我们是否可以使用 memcpy
或其他任何东西将整个结构直接存储在缓冲区类型 char*
(自动化,因为结构可能特别大)?
最佳答案
是的,这很好,没有对齐问题:
struct tree leaf = { 1, 2, 3, 4 };
char buf[sizeof leaf]; // or malloc
memcpy(buf, &leaf, sizeof leaf);
// do stuff...
struct tree branch;
memcpy(&branch, buf, sizeof branch);
printf("%d\n", branch.member1); // etc.
关于c - 在 char* 中存储不同的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728028/