1
我想使用memcpy()
将长长阵列复制到整型数组。长长数组的大小是整数数组大小的一半。将长长阵列复制到c语言的整型数组中
除了memcpy()
我用这个:
int *dst;
long long src[10];
dst=(int*)src;
但我只想memcpy()
使用。
因为目的是,long long数组是一个临时数组,它将其内容复制到源数组的子数组中。源数组是2维数组。
我想使用memcpy()
将长长阵列复制到整型数组。长长数组的大小是整数数组大小的一半。将长长阵列复制到c语言的整型数组中
除了memcpy()
我用这个:
int *dst;
long long src[10];
dst=(int*)src;
但我只想memcpy()
使用。
因为目的是,long long数组是一个临时数组,它将其内容复制到源数组的子数组中。源数组是2维数组。
一般来说,sizeof (long long) > sizeof (int)
。
因此,您无法使用逐字节复制操作(如memcpy()
)将long long
数组中的所有元素复制到int
的数组中;数据不适合。
您可以使用循环来手动执行(截断)副本。这当然会丢失信息:
const long long incoming[] = { 1ll, 2ll, /* more here ... */ };
int out[sizeof incoming/sizeof *incoming];
for(size_t i = 0; i < sizeof incoming/sizeof *incoming; ++i)
out[i] = (int) incoming[i];
我几乎可以肯定你不_want_做that..but然后,.... –
你们的榜样甚至没有做一个拷贝,而只是一个指针转换。 – trenki