首页 > 解决方案 > 为什么 C++ 'int arr[n];' 这样 n 是变量在一种环境中工作而在另一种环境中不起作用?

问题描述

当我输入:

int n; 
cin >> n; 
int a[n]; 

它适用于 VS 代码,但不适用于 Visual Studio。

由于与内存相关的东西,我希望它根本不起作用。

那么,任何解释为什么它可以在 VS 代码上工作?

标签: c++memorymemory-leaks

解决方案


a[n]是可变长度数组 (VLA),它是 C99 的一个特性。它不是 C++ 功能。一些 C++ 编译器,至少,接受语法作为编译器扩展。


推荐阅读