很抱歉,如果这看起来像是一个愚蠢的问题。
我有这段代码:
char array1[2];
char array2[2];
char array3[2];
char *array[] = {
array1,
array2,
array3,
}
现在我将array1,array2,array3更改为二维数组:
char array1[2][2];
char array2[2][2];
char array3[2][2];
我收到以下错误:
error: cannot convert 'char (*)[2]' to 'char*' in initialization
如何使用二维数组初始化数组?
我还尝试了以下哪些不起作用:
char *array[2][2] = {
array1,
array2,
array3,
}
char array[][2][2] = {
array1,
array2,
array3,
}
谢谢!
答案 0 :(得分:2)
C ++ 11使这很简单:
char array1[2][2];
char array2[2][2];
char array3[2][2];
std::decay<decltype(array1)>::type array[] = {
array1,
array2,
array3,
};
相当于(我认为不可读)语法
char (* array [])[2] = {
array1,
array2,
array3,
};
与往常一样,规则与every decent C++ book中的规则相同: