short数组如何赋值给int数组?

superstar_pig 2008-10-21 10:39:05
比如short a[6] 要赋值给 int b[3]里面。unix下面。
...全文
377 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjzwl1018 2008-10-22
  • 打赏
  • 举报
回复
memcpy就可以,类型强制转换一下。
czbever 2008-10-22
  • 打赏
  • 举报
回复
可能会发生错误吧? 如果unsigned 类型的两个字节都为0xff 那么赋予int类型后值就变成-1了

xianyuxiaoqiang 2008-10-22
  • 打赏
  • 举报
回复
顶。
lxjlan 2008-10-22
  • 打赏
  • 举报
回复
用移位比较好,可靠性高些。原理上直接memcpy应该也是可以的,主要取决于你需要short在int中是如何排布的。
superstar_pig 2008-10-22
  • 打赏
  • 举报
回复
好了。解决了。相邻两个short交换位置后在memecpy.否则有大小端问题。
帅得不敢出门 2008-10-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 superstar_pig 的回复:]
直接memcpy有问题的。
[/Quote]
类型转换下就没问题了.
superstar_pig 2008-10-21
  • 打赏
  • 举报
回复
直接memcpy有问题的。
帅得不敢出门 2008-10-21
  • 打赏
  • 举报
回复

int main()
{
short a[6]={0,0,0,0,0,0} ;
int b[3];
strncpy((char*)b,(char*)a,6*sizeof(short));
cout << b[0];
return 0;
}
lunarfan 2008-10-21
  • 打赏
  • 举报
回复
对memcpy
lunarfan 2008-10-21
  • 打赏
  • 举报
回复
位移很麻烦
  • 打赏
  • 举报
回复
memcpy( b, s ,sizeof(int)*3);
wuyu637 2008-10-21
  • 打赏
  • 举报
回复
memcpy(a,b,6*2);

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧