Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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++ - Fatal编程技术网

C++ 数组声明上的编译器错误?

C++ 数组声明上的编译器错误?,c++,C++,我如何着手修复这三个错误 错误C2057:应为常量表达式 错误C2466:无法分配常量大小为0的数组 错误C2133:“随机票证”:未知大小 有问题但不喜欢[门票]的队伍 int randomTickets[tickets][SIZE]; 提前感谢您的帮助 错误C2057:应为常量表达式 您不能这样声明randomTickets,因为数组的维度需要在编译时已知票证不是编译时常量,因此出现错误。考虑使用: 其他错误可以通过修复此错误来解决。变量tickets不是常量表达式,这就是原因 更改

我如何着手修复这三个错误

  • 错误C2057:应为常量表达式
  • 错误C2466:无法分配常量大小为0的数组
  • 错误C2133:“随机票证”:未知大小
有问题但不喜欢[门票]的队伍

int randomTickets[tickets][SIZE];

提前感谢您的帮助

错误C2057:应为常量表达式

您不能这样声明
randomTickets
,因为数组的维度需要在编译时已知<代码>票证不是编译时常量,因此出现错误。考虑使用:


其他错误可以通过修复此错误来解决。

变量
tickets
不是常量表达式,这就是原因

更改
int-randomTickets[tickets][SIZE]
如下:

Array* randomTickets = new Array[tickets];
在函数
main
之外,声明以下类型:

typedef int Array[SIZE];

从这一点开始,您可以将变量
randomTickets
用作“普通”二维数组,只是不要忘记
delete[]randomTickets
完成后…

tickets
设置为一个常量表达式,并确保其值大于零。能否解释错误消息的哪一部分您不理解?“期望常数表达式”非常简单。是因为你不知道它在哪里?(您似乎知道,因为您将它隔离到了
tickets
)是不是您不知道常量表达式是什么?
std::vector randomTickets(tickets)(雷蒙德的评论为+1)。
std::vector<std::array<int, SIZE>> randomTickets(tickets);
Array* randomTickets = new Array[tickets];
typedef int Array[SIZE];