c++ - 数组下标错误
问题描述
这给了我一个错误,即表达式a
必须具有恒定值。我无法理解这种方法有什么问题。n
是一个整数,我给它数组大小。有人可以帮我理解这个问题吗?
int fib(int n)
{
const int a = n;
int f[a];
...
}
解决方案
其他人已经说过了,但本质上问题是您为数组分配的大小是可变的,并且只能在程序运行时知道。编译器必须在编译时知道数组的大小,所以这是一个问题,并且与 C++ 标准冲突。值得注意的是,某些编译器确实具有支持此功能的扩展,因此您可能会感到困惑。我建议std::vector
在您需要可变长度数组的任何时候使用。
推荐阅读
- java - 如何使用 bndtools 解析 org.slf4j
- flutter - 如何在 Flutter 的本地列表中保存用户 ID 列表?
- dynamics-crm - 阿尔:走!找不到相关命令
- c - 如何自动解决特定冲突?
- c# - 如何使用私钥进行身份验证 - Walmart Affiliate
- python - 为什么我的 tkinter 应用程序仅在第二次运行更新命令时关闭而没有错误消息?
- sql-server - 将结果表中的空值替换为 sql 数据透视表中的“0”
- python - 如何从 python 3.8.6 中的 gif 文件中获取帧数?
- elastic-apm - 在 Visual Studio 2019 中设置 Elastic APM .Net 代理
- java - 自动装配在 Spring Boot 应用程序中不起作用