为什么 C++ 'int arr[n];' 这样 n 是可变的在一个环境中工作而在另一个环境中不工作?
Why does the C++ 'int arr[n];' such that n is variable works in one environment and doesn't work in another?
当我输入时:
int n;
cin >> n;
int a[n];
它适用于 VS 代码,但不适用于 Visual Studio。
由于与内存相关的问题,我预计它根本无法工作。
那么,有什么解释为什么它在 VS 代码上有效吗?
a[n]
是可变长度数组 (VLA),它是 C99 的一个特性。它不是 C++ 功能。一些 C++ 编译器接受语法作为编译器扩展。
当我输入时:
int n;
cin >> n;
int a[n];
它适用于 VS 代码,但不适用于 Visual Studio。
由于与内存相关的问题,我预计它根本无法工作。
那么,有什么解释为什么它在 VS 代码上有效吗?
a[n]
是可变长度数组 (VLA),它是 C99 的一个特性。它不是 C++ 功能。一些 C++ 编译器接受语法作为编译器扩展。