그것은 C++에서 정적 배열이 const를 표현에서만 초기화 할 수 있다는 것을 기억 될 것 같다,하지만 당신이 쓰는 경우 :C++ 정적 배열이
#include <iostream>
int main() {
int n;
std::cin >> n;
int a[n];
std::cout << sizeof(a);
return 0;
}
이 프로그램이 성공적으로 컴파일 (GCC C++ 17)과 n * sizeof (int)를 인쇄하십시오. 하지만이 이유는 무엇입니까?
'std :: vector'를 사용하지 않는 이유는 무엇입니까? –
GCC (불행히도)는 기본적으로 VLA를 확장으로 허용합니다. '-std = C++ 17' 및/또는'-Wvla -Werror'로 컴파일하면 컴파일되지 않습니다. –
그러나 VLA는 어떻게 작동합니까? 스택 예약이 있습니까? – Mano