我试图编译下面的代码调用上新:如何多维数组
bool **copyBools(bool const * const * const input)
{
bool retval[4][4] = new bool[4][4];
for(int i=0; i<4; ++i)
{
for(int j=0; j<4; ++j)
{
retval[i][j] = input[i][j];
}
}
return retval;
}
但是,它不编译并给出了这些错误。第一个错误是在bool retval
线和第二个错误是在return
行:
error: array must be initialized with a brace-enclosed initializer
error: cannot convert ‘bool (*)[4]’ to ‘bool**’
我的理解是一个[][]
阵列是同样的事情,作为一个**
。这是不是真的?这段代码有什么问题?为二维数组调用new的正确方法是什么?为什么我不能将它作为**
归还?
一个const-指向一个const布尔的const指针的指针。只是这些日子不常见到这种情况。 – WhozCraig