memcpy一个负数

nick
  • 91

int x = -2;
int y = 0;
memcpy(&y,&x,2);
memcpy(&y+2,&x+2,2);
此时y的值为什么不是-2呢

回复
阅读 972
1 个回答
✓ 已被采纳

memcpy(&y,&x,sizeof(int));

sizeof(int) 不一定是 2

&x+2 不是 &x 之后两个字节,而是 &x 之后两个 int (两个 sizeof(int) 字节)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏