对于一项作业,我必须创建一个字符串 ** 数组并进行操作。指南说您可以按如下方式创建一个字符串,然后按如下方式分配它。
代码:
string **diceArray;
diceArray[0][0] = "t";
diceArray[0][1] = "e";
diceArray[0][2] = "l";
diceArray[0][3] = "l";
我也试过下面的代码来分配,但还是失败了
string ** diceArray;
diceArray = new string*[rows];
for(unsigned int i = 0; i<rows; i++){
diceArray[rows] = new string[cols];
}
最佳答案
您有内存地址(内存指针)的引用,您需要为该数据保留空间。
如果你总是有相同大小的字符串缓冲区,你可以创建你的变量
string diceArray[1][4];
或者,如果您需要动态大小的字符串和动态数量的单词,您可以使用类似这样的东西。
string **str = new string*[x];
for (int i=0; i<x; i++)
str[i] = new string[y];
关于c++ - 字符串**数组;数组 [行] [列] = "string"上的段错误; C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22276108/