免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2661 | 回复: 1
打印 上一主题 下一主题

[C] 结构体中相同结构体变量的拷贝 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-04 15:48 |只看该作者 |倒序浏览
typedef struct
{  
    HPR_INT8    ctrl;
    HPR_INT8    drive;
    HPR_UINT8   res0[2];
    int d;   
    ................  /*省略号表示结构体中相同部分里面没有指针*/
}STOR_SEAR0

typedef struct
{  
    int *p;
   int *q;
   int a;
   int d;
   ................  /*省略号表示结构体中相同部分里面没有指针*/
}STOR_SEAR1

有如上两个结构体我要拷贝STOR_SEAR0省略号部分到STOR_SEAR1省略号部分,我的想法是这两个结构体只有前面几个字节是不同的(已经4字节对齐),我只要从相同部分拷贝就可以了,即从d处的内存地址开始拷贝
STOR_SEAR1  structSear1;
STOR_SEAR0 structSear0;
memcpy( ((char *)&structSear1+12),((char *)&structSear0+4),sizeof(STOR_SEAR0)-4)
但出错了,为什么,(省略号部分是完全相同的且已经考虑了4字节对齐的)

论坛徽章:
0
2 [报告]
发表于 2013-11-04 21:19 |只看该作者
不好意思structSear0这个结构体在前面填充时出现了问题,问题不在结构体赋值上

这个帖子结了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP