有大佬遇到过这个问题吗:怎么定位结构体某个变量的地址?

structAA{
unsignedcharday;
unsignedcharmonth;
unsignedcharyear;
}a;
unsignedcharb[]={1,2,3,4};我想把b[2]开始两位复制到month开始两位,使用memcpy(&a+1,b+1,2);结果是错误的。我怀疑是&a+1的偏移量为一个结构体大小3,而非1.
那么要怎么定位month的地址呢?
守着星空守着你
浏览 352回答 2
2回答

繁花不似锦

&a类型是AA*,&a+1会向后移动一个结构体的大小,很可能会覆盖其他的内存!!!如果一定要这样赋值的话,将&a转为char*类型就行了,memcpy((char*)(&a)+1,b+1,2)。强烈建议不要这样做!!!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript