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()'는 내가 제어 할 수없는 큰 라이브러리에 대한 호출을 대체하기위한 것입니다. - 원시 포인터를 전달하는 것이 좋지 않다는 것에 동의합니다. –
주위에 포인터를 전달하는 것이 좋습니다. 지역 변수에 대한 포인터를 반환하는 것은 아닙니다. 왜 '정적'으로'a'를 선언하지 않는가? 그러면 올바른 것이며 미래의 독자를 혼란스럽게하지 않을 것입니다. –