C++ 使用变量创建数组

C++ 使用变量创建数组,c++,arrays,constant-expression,C++,Arrays,Constant Expression,我有以下代码: #include <iostream> using namespace std; int main() { unsigned int endx = 5; unsigned int endy = 5; unsigned int endz = 5; int Matrix[endx+1][endy+1][endz+1] = {}; return 0; } #包括 使用名称空间std; int main() { 无符号int-endx=

我有以下代码:

#include <iostream>

using namespace std;

int main()
{
   unsigned int endx = 5;
   unsigned int endy = 5;
   unsigned int endz = 5;

   int Matrix[endx+1][endy+1][endz+1] = {};

   return 0;
}
#包括
使用名称空间std;
int main()
{
无符号int-endx=5;
无符号整数endy=5;
无符号整数endz=5;
整数矩阵[endx+1][endy+1][endz+1]={};
返回0;
}
我明白了

错误C2057:应为常量表达式


好的,在没有向量或动态分配数组的情况下,如何创建代码中所示的矩阵?

创建数组时,数组需要常量。在这段代码中,只要使end*变量
常量unsigned int
就可以了。

数组在创建时需要常量。在这段代码中,只需使end*变量
常量unsigned int
就可以了。

正如错误所说,需要常量表达式来定义数组/矩阵大小;在该示例中,将整数设为const
const
,它将编译

const unsigned int endx = 5;
const unsigned int endy = 5;
const unsigned int endz = 5;

如果不希望动态分配数组或向量,则必须事先知道确切的数组大小。

正如错误所述,需要常量表达式来定义数组/矩阵大小;在该示例中,将整数设为const
const
,它将编译

const unsigned int endx = 5;
const unsigned int endy = 5;
const unsigned int endz = 5;

如果您不希望动态分配数组或向量,那么您必须事先知道确切的数组大小。

他需要加1:endx+1是的,如果endx是type
const unsigned int
那么
endx+1
仍然是一个常量。它是有效的…试试看。他确实加了一:endx+1是的,如果endx是type
const unsigned int
,那么
endx+1
仍然是一个常量。它有效…试试看。