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