存储指向2d数组的指针

时间:2014-07-04 15:24:35

标签: c++ arrays

所以我在班级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

任何人都可以解释发生了什么以及如何解决它吗?

1 个答案:

答案 0 :(得分:2)

2d数组的初始化如下:

char **_map;

_map = new char*[rowsize];

for(int row = 0; row < rowsize; ++row)
{
    _map[row] = new char[columnsize]
}