Char 2d指针数组

时间:2014-05-11 15:39:34

标签: c arrays pointers

我在函数中使用以下定义:

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;是什么意思,我如何初始化一个数组作为参数传递给这个函数调用?

1 个答案:

答案 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 );