c++ - 字符串**数组;数组 [行] [列] = "string"上的段错误; C++

标签 c++ arrays string

对于一项作业,我必须创建一个字符串 ** 数组并进行操作。指南说您可以按如下方式创建一个字符串,然后按如下方式分配它。

代码:

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/

相关文章:

c++ - unsigned char 的 gdb 表示形式——是否不一致?

c - C语言中如何将数组存入数组?

java - 相对于 JVM 的字符串池,在 Java 中创建一个字符串的时间成本是多少?

javascript - node.js 如何在字符串中搜索数组中的值

javascript - 访问多维数组 JSON

C++ 头文件混淆

java - 如何转义将成为字符串一部分的斜杠?

c++ - C++ 中的单词语言检测

c++ - Boost asio网络分离发送和接收

c++ - Boost Beast 关闭后重新连接 websocket 连接