在运行时确定大小的数组在C++中是否有效?

jVa*_*ron 5 c++ arrays

所以我正在和我的朋友交谈,用一段代码帮助她,我一直认为数组需要是编译时常量,因为它们在堆栈中.但她说她的朋友使用这段代码做了这件事:

#include <iostream.h>
#include <stdlib.h>
int main()
{
    int value = ' ' ;
    int sum = 0;
    int count = 0;
    cout<<"Please enter the total number of employees" <<endl;;
    cin>> value;
    int numbers[value];
    cout<<"Now enter the employees corresponding salaries" <<endl;;
    for (int k = 0; k < value; k++)
    {
        cin >> numbers[k];
    }
}
Run Code Online (Sandbox Code Playgroud)

他们正在使用Dev-C++.

这段代码是否有效?我假设没有.

Jas*_*son 9

变长数组是一个扩展gccg++...所以这不会在每一个编译器的工作.

有关gcc对可变长度数组的支持的更多信息,可以在此处查看文档.