c++ - 二维数组中的预期常数

标签 c++ arrays

double rainPerMonth(const int YEARS)
{
   int monthYear[MONTHS][YEARS];
   // ...
}

Visual Studio 在数组声明下方显示一条波浪线,表明在我创建数组时 YEARS 必须是常量。这是一个 IDE 问题,因为变量尚未初始化,还是我写错了?

MONTHS 已在全局声明。

最佳答案

数组大小必须是常量表达式——即编译时已知的值。 (一些编译器提供 C 风格的可变长度数组作为非标准扩展,但我不认为 Visual C++ 提供。即使提供,最好不要依赖此类扩展。)

函数参数在编译时是未知的,因此不能用作数组大小。你最好的选择可能是这里

std::vector<std::array<int, MONTHS>> monthYear(YEARS);

关于c++ - 二维数组中的预期常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21486696/

相关文章:

c# - 如何从 C++ 调用 WCF 服务

c++ - 将 unique_ptr 引用传递给 boost::bind?

php - 如何使用 php 5.5.17 像 JSON for Google 图表一样从 postgres 9.5 中排列结果

javascript - 停止将大型数组的数组转换为对象

c# - 在c#中删除Json数组中的Json对象

C++将时间字符串转换为纪元的秒数

c++ - C和C++中的浮点运算差异

c++ - 不需要预处理代码的 C++ 单元测试框架

C 更改数组的索引表示

php - 在一行中对数组项执行函数