我想將const unsigned int*
數組轉換爲int*
數組。然而, static_cast
和const_cast
失敗。如何將const unsigned int數組轉換爲int數組
const unsigned int* getArray()
{
static unsigned int a[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
return a;
}
int main()
{
const unsigned int * a = getArray();
const_cast<int*>(a); // fail
static_cast<int*>(a); // fail
}
那是你真正的代碼? 'getArray'甚至沒有'return'語句。除此之外,返回一個局部變量的地址(就像你打算這樣做)是壞消息。 –
@CarlNorum'getArray()'只是將調用替換爲我無法控制的更大的庫。 - 我同意傳遞原始指針並不好。 –
傳遞指針很好。返回指向局部變量的指針不是。爲什麼不用'static'聲明'a'?那麼這將是正確的,不會混淆未來的讀者。 –