关于c ++:存储指向2d数组的指针

Store pointer to 2d array

本问题已经有最佳答案,请猛点这里访问。

所以我有一个Map类的私人成员:

1
char **_map;

然后我尝试将指针数组初始化为二维char数组,如下所示:

1
2
3
4
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数组,但收到以下错误:

2

而这:

1
Error   2   error C2440: '=' : cannot convert from 'char (*)[1]' to 'char **'

最后是:

1
    3   IntelliSense: expression must have a constant value

最后一个错误引用变量y

有人能解释发生了什么以及我如何修复它吗?


二维数组的初始化如下:

1
2
3
4
5
6
7
8
char **_map;

_map = new char*[rowsize];

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