簡體   English   中英

如何將unsigned short數組轉換為int數組?

[英]How do I cast array of unsigned short to an array of int?

我有2個數組:

unsigned short* array1;
int* array2;

有沒有一種快速的方法可以將array1中的所有數據放入array2中,從而使array2[0]=array1[0], array2[1] = array1[1] ...等的值。

我的問題提到演員,但我認為是一廂情願! 顯然,我可以使用for循環逐個元素地進行此操作,但是我正在編寫圖像處理應用程序,而速度是關鍵。 如果不進行鑄造,那么還有其他解決方案嗎? 謝謝。

如何將unsigned short數組轉換為int數組?

你不知道 如果您這樣做了,並使用了結果,那么手頭會有一些不錯的未定義行為。

有沒有一種快速的方法來將array1中的所有數據放入array2

是的,復制數組元素。 在任何體面的現代計算機上,它都將很快。

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM