- 论坛徽章:
- 0
|
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字节对齐的)
|
|