There is not an immediate way to reconcile this. Given char S[1000][200]
, S
is 200,000 bytes of memory organized into 1000 arrays of 200 char
. But the routine buscar_str
declared with char **buscar_str(char **S)
wants a pointer to one or more pointers to char
. You do not have any pointers to char
in S
. You can give one, such as &S[0][0]
, but you do not have more than one.
To resolve this, you must either allocate space for an array of pointers to char
and fill that array with such pointers (perhaps to those various char
in S
) or you must change buscar_str
to accept a pointer to an array, such as char (*S)[200]
, or, less likely, a pointer to an array of arrays, such as char (*S)[1000][200])
. For the former, you would pass S
to buscar_str
. For the latter, you would pass &S
to buscar_str
.
We cannot tell you which of these options is suitable for your situation without further information.