在莫尔斯电码游戏中,我制作了一个如下所示的char数组,我想将每个元素作为array[index];但它给分割带来了缺陷。任何人都能给出解决方案吗。
const char * const array[3]={"apple","mango","banana"};
您还没有发布显示segfault的代码,因此很难对可能导致它的原因进行完整分析。然而,您访问的内容很可能超出了单词存储的数组的范围,这会引发分段错误。
至于解决方案,为什么不使用STL容器呢?类似std::vector
的东西也可以正常工作:
//Container that stores words
std::vector<std::string> MorseWords;
//To add a word
MorseWords.push_back("apple");
//To access a letter within a word
char letter = MorseWords[WordPosition][LetterPosition];
以下示例使用了上述原理:
std::vector<std::string> MorseWords;
MorseWords.push_back("apple");
MorseWords.push_back("banana");
MorseWords.push_back("carrot");
std::cout << MorseWords[1][0]; //Prints the 'b' of banana