2014-12-02 210 views
1

阵列我有以下代码:创建具有可变

#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; 
} 

我得到

错误C2057:预期常量表达式

好的,我如何可以创建矩阵像没有向量或动态分配数组的代码中所示?

回答

2

作为错误说,需要常量表达式定义阵列/矩阵大小;在这个例子中,使整数const,它会编译。如果你不想动态分配数组或向量,那么你必须事先知道确切的数组大小。

2

数组创建时需要常量。在这段代码中,只是让你的结尾*变量const unsigned int应该这样做。

+0

他做加一:endx + 1 – hasan83 2014-12-02 00:48:09

+0

是的,如果endx是类型'const的无符号int'然后'endx + 1'仍然是一个常数。它的作品...尝试它。 – 2014-12-02 00:49:15

+1

战略downvote – 2014-12-02 01:01:46