首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

memcpy的有关问题,也是指针的有关问题,希望高手解决的有关问题,因为它有人叫小弟我去c新手论坛的有关问题

2012-02-26 
memcpy的问题,也是指针的问题,希望高手解决的问题,因为它有人叫我去c新手论坛的问题inta1,b2,c3int*p

memcpy的问题,也是指针的问题,希望高手解决的问题,因为它有人叫我去c新手论坛的问题
int   a   =   1,b=2,c=3;
int*   p;
int   iDif   =   (int)&c   -   (int)&p;
memcpy(&p+iDif,&b,4);//结果c的值没有变成2
                memcpy(&c,&b,4);//结果c的值变成了2,但分明&p+iDif就是&c。
memcpy到底作了什么?看反汇编代码也许可以得到答案,但我没有完全看懂。



[解决办法]
指针加法问题

&p 的类型是 int **

&p + iDif 实际地址加的值是 iDif *(sizeof(int **)), 也就是 iDif *4

memcpy(((BYTE *)(&p))+iDif, &b, 4); //应该这样写


热点排行