所以我在班级Map
中有一位私人会员:
char **_map;
然后我尝试将指针数组初始化为二维char
数组,如下所示:
std::vector<std::string> contents = StringUtils::split(_mapInfo.getContents(), ' ');
const int x = StringUtils::toInt(contents.at(0));
const int y = StringUtils::toInt(contents.at(1));
_map = new char[x][y];
基本上contents
向量包含两个字符串,然后我将其转换为整数。然后我尝试初始化map
数组,但收到此错误:
Error 1 error C2540: non-constant expression as array bound
而且:
Error 2 error C2440: '=' : cannot convert from 'char (*)[1]' to 'char **'
最后这个:
3 IntelliSense: expression must have a constant value
最后一个错误引用变量y
任何人都可以解释发生了什么以及如何解决它吗?
答案 0 :(得分:2)
2d数组的初始化如下:
char **_map;
_map = new char*[rowsize];
for(int row = 0; row < rowsize; ++row)
{
_map[row] = new char[columnsize]
}