首页 > 解决方案 > 数组下标错误

问题描述

这给了我一个错误,即表达式a必须具有恒定值。我无法理解这种方法有什么问题。n是一个整数,我给它数组大小。有人可以帮我理解这个问题吗?

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

标签: c++arrays

解决方案


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


推荐阅读