次のコードをコンパイルしようとしています。
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
行にあり、2 番目のエラーは次の行にありますreturn
。
error: array must be initialized with a brace-enclosed initializer
error: cannot convert ‘bool (*)[4]’ to ‘bool**’
私の理解では、[][]
配列は**
. これは真実ではありませんか?このコードの何が問題になっていますか? 二次元配列に対して new を呼び出す適切な方法は何ですか? として返せないのはなぜ**
ですか?