存储指向二维数组的指针[重复]

Posted

技术标签:

【中文标题】存储指向二维数组的指针[重复]【英文标题】:Store pointer to 2d array [duplicate] 【发布时间】:2014-08-25 23:23:00 【问题描述】:

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

谁能解释发生了什么以及我该如何解决?

【问题讨论】:

这个问题已经在How do I declare a 2d array in C++ using new?得到解答 谢谢你,回答了我的问题! 【参考方案1】:

二维数组的初始化如下;

char **_map;

_map = new char*[rowsize];

for(int row = 0; row < rowsize; ++row)

    _map[row] = new char[columnsize]

【讨论】:

以上是关于存储指向二维数组的指针[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C语言指向二维数组的指针

c++如何用指针指向二维数组

c 语言用指针表示二维数组的列 怎样表示

怎么让一个二维指针指向一个二维数组

C语言指针指向一维数组与二维数组?

二维数组名不能赋值给二级指针- -