我有2个阵列:
unsigned short* array1;
int* array2;
是否可以通过快速方式将array1中的所有数据导入array2,以便array2[0]=array1[0], array2[1] = array1[1]
...等的值
我的问题提到了施法,但我认为这是一厢情愿的想法! 显然,我可以使用for循环逐个元素执行此元素,但我正在编写一个图像处理应用程序,速度是关键。如果没有铸造那么还有其他解决方案吗?感谢。
答案 0 :(得分:0)
如何将无符号short的数组转换为int数组?
你不是。如果你这样做,并且你使用了结果,那么你手头就会有一些很好的未定义行为。
是否可以快速将array1中的所有数据导入array2
是的,复制数组元素。它在任何体面的现代计算机上都会很快。
答案 1 :(得分:-1)
if (sizeof (int) == sizeof (short)) {
array2 = (int*)array1; // UB: this may not work on some implementations
} else {
// allocate memory for array2
for (i = 0; i < nelems; i++) {
array2[i] = array1[i];
}
// possibly release resources for array1
}