所以这是我正在为课堂工作的程序中的一个函数。在函数中,我想将 8 个字符的手组合为 3、4、5、6、7 和 8 个字母的单词,这些单词通过 checkDictionary 函数进行验证。一切正常,但当我想将这些创建的单词存储到一个二维字符数组(基本上是一个一维字符串数组)中时,我得到一个分段错误错误。显然导致这些问题的行是以下行:
strcpy(arrWords[count],letters8); strcpy(arrWords[count],letters7); ...
^ 直到字母3 ^
我只想知道我用诸如那些代码行存储到二维数组中到底有什么问题。此外,如果您能给我任何有关如何将这些创建的单词准确存储到二维数组(arrWords)中的建议,我们将不胜感激。非常感谢您的参与!:D
各种各样的:
这个程序基本上是拼字游戏
递增 i 和 j 的循环用于通过 10x10 的 2d 阵列板递增,其中填充有“。” 并由用户放置单词。
-字典有40438个实际单词
void computerMove(char dictionary[][45], char arrBoard[11][11], char computer[9])
{
char let1, let2, let3, let4, let5, let6, let7, let8;
// char letters3[4];
// char letters4[5];
// char letters5[6];
// char letters6[7];
// char letters7[8];
// char letters8[9];
int count = 0;
char arrWords[40438][10];
for (int i=0; i<10; i++)
{
for (int j=0; j<10; j++)
{
// if (arrBoard[i][j]!='*')
let1=arrBoard[i][j];
for (int a=0; a<8; a++)
{
let2=computer[a];
for (int b=0; b<8; b++)
{
let3=computer[b];
char letters3[4]={let1,let2,let3};
cout<<letters3<<endl;
if (searchDictionary(dictionary,letters3,40438)==true)
strcpy(arrWords[count],letters3);
count++;
for (int c=0; c<8; c++)
{
let4=computer[c];
char letters4[5]={let1,let2,let3,let4};
if (searchDictionary(dictionary,letters4,40438)==true)
strcpy(arrWords[count],letters4);
count++;
for (int d=0; d<8; d++)
{
let5=computer[d];
char letters5[6]={let1,let2,let3,let4,let5};
if (searchDictionary(dictionary,letters5,40438)==true)
strcpy(arrWords[count],letters5);
count++;
for (int e=0; e<8; e++)
{
let6=computer[e];
char letters6[7]={let1,let2,let3,let4,let5,let6};
if (searchDictionary(dictionary,letters6,40438)==true)
strcpy(arrWords[count],letters6);
count++;
for (int f=0; f<8; f++)
{
let7=computer[f];
char letters7[8]={let1,let2,let3,let4,let5,let6,let7};
if (searchDictionary(dictionary,letters7,40438)==true)
strcpy(arrWords[count],letters7);
count++;
for (int g=0; g<8; g++)
{
let8=computer[g];
char letters8[9]={let1,let2,let3,let4,let5,let6,let7,let8};
if (searchDictionary(dictionary,letters8,40438)==true)
strcpy(arrWords[count],letters8);
count++;
}
}
}
}
}
}
}
}
// cout<<"YOURE OVER HERE PAL!"<<endl;
// for (int z=0; z<50; z++)
// cout<<arrWords[z]<<endl;
}
}
非常感谢您提供帮助!