Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组的下标中存在错误_C++_Arrays - Fatal编程技术网

C++ 数组的下标中存在错误

C++ 数组的下标中存在错误,c++,arrays,C++,Arrays,这给了我一个错误,表达式a必须有一个常量值。我不明白这种方法有什么不对n是一个整数,我给它数组大小。有人能帮我理解这个问题吗 int fib(int n) { const int a = n; int f[a]; ... } 其他人已经说过了,但本质上的问题是,您正在为数组分配一个可变的大小,并且只能在程序运行时知道。编译器必须知道编译时数组的大小,所以这是一个问题,与C++标准冲突。值得注意的是,有些编译器确实有支持这一点的扩展,所以这可能会让您感到困惑。我建议在需要可变长度数组的任何时候使

这给了我一个错误,表达式
a
必须有一个常量值。我不明白这种方法有什么不对
n
是一个整数,我给它数组大小。有人能帮我理解这个问题吗

int fib(int n)
{
const int a = n;
int f[a];
...
}

其他人已经说过了,但本质上的问题是,您正在为数组分配一个可变的大小,并且只能在程序运行时知道。编译器必须知道编译时数组的大小,所以这是一个问题,与C++标准冲突。值得注意的是,有些编译器确实有支持这一点的扩展,所以这可能会让您感到困惑。我建议在需要可变长度数组的任何时候使用
std::vector

正如它所说的,它需要是一个常量,您使用的是一个变量。C++不允许可变长度数组。现在什么是<代码> N< /代码>?没有人知道,编译器也不知道<代码>n不是constant@SamiKuhmonen谢谢。C++中的RAMSIGH可能的副本,你应该使用<代码> STD::向量f(a);<代码>用于此目的。