memcpy 拷贝结构体问题

jmac 2009-03-26 11:33:26

struct a
{
int uid;
char name[20];
};
struct b
{
int id;
a *p;
}
现有一个 void data[512]的数据 拷贝到结构体 b, 其中 结构b中包括5个 a
这个怎么 拷?
...全文
264 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hai040 2009-03-26
  • 打赏
  • 举报
回复
b ob;
ob.id = *(int*)data;
//指针
ob.p = (a*)((int*)data + 1);
//copy
ob.p = malloc(...)
memcpy(ob.p, (int*)data+1);
hust_terry 2009-03-26
  • 打赏
  • 举报
回复
你这种情况只能一个变量一个变量的拷
jmac 2009-03-26
  • 打赏
  • 举报
回复
void data[512] 就是 1个结构体b拷进去的, 其中 b 中包括 5个 a
  • 打赏
  • 举报
回复
void data[512]是什么数据?
要要么就直接纯指针操作,
要么就乖乖的一个个结构体成员赋值
jmac 2009-03-26
  • 打赏
  • 举报
回复
那这个怎么转换哦?
hai040 2009-03-26
  • 打赏
  • 举报
回复
没法直接memcpy
m2002g 2009-03-26
  • 打赏
  • 举报
回复
struct b
{
int id;
a *p;
}

因为第二个变量是个指针所以没办法直接拷,只能给p赋值
beyond071 2009-03-26
  • 打赏
  • 举报
回复
复习了

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧