我在函数中使用以下定义:
int FindInMatrix(char *matrix[MAXROW][MAXCOL],char* s);
现在要调用这个函数,我创建了一个这样的数组:
char *charArr[5][5];
for ( i = 0; i < 5; i++)
{
for (int j = 0; j < SIZE; j++)
{
*charArr[i][0] = 't';
*charArr[i][1] = 'e';
*charArr[i][2] = 'a';
*charArr[i][3] = 'm';
*charArr[i][4] = 's';
}
}
char *findS="team";
int res=0;
res=FindInMatrix(&c, findS);
但是它给了我一个分段错误错误。能否请你解释一下&#39; char * matrix [] []&#39;是什么意思,我如何初始化一个数组作为参数传递给这个函数调用?
答案 0 :(得分:0)
这样打电话:
SearchWord(charArr, findS);
charArr已经是指向二维数组的指针:
char *charArr[5][5];
因此,charArr将正常工作。
注意:我建议您使用下面的代码(它更简单,更容易阅读/理解):
int FindInMatrix(char matrix[MAXROW][MAXCOL], char* s);
char charArr[5][5];
for ( i = 0; i < 5; i++ )
{
charArr[i][0] = 't';
charArr[i][1] = 'e';
charArr[i][2] = 'a';
charArr[i][3] = 'm';
charArr[i][4] = 's';
}
char *findS = "team";
int res = 0;
res = SearchWord( c, findS );