내가 정수 배열 그러나int를 const int로 변환하여 스택에 배열 크기를 할당하는 방법은 무엇입니까?
#include<iostream>
using namespace std;
int main(){
int n1 = 10;
const int N = const_cast<const int&>(n1);
//const int N = 10;
cout<<" N="<<N<<endl;
int foo[N];
return 0;
}
에 스택에 고정 된 크기를 할당하는 것을 시도하고있다, 이것은 내가 고정
error C2057: expected constant expression
을 정의 할 수 N
를 사용하고 마지막 줄에 오류가 있습니다.
그러나 N
을 const int N = 10
으로 정의하면 코드가 올바르게 컴파일됩니다. n1
을 타이 캐스팅하여 const int
으로 처리하려면 어떻게해야합니까?
시도 :const int N = const_cast<const int>(n1)
하지만 오류가 발생합니다.
편집 : 나는 이것을 컴파일하기 위해 MS VC++ 2008을 사용하고 있습니다 ... g ++로 잘 컴파일합니다.
그냥 한 자세한 내용을 추가 할 : GCC는 확장으로 컴파일 - 사실, 그것은 심지어 아닌 다른 표현을 할 수 있습니다 'int x (int a) {int b [a];와 유사하다. }' –
아, 감사합니다, @ JerryCoffin. 나는 게시했을 때 편집을 보지 못했습니다. –