问题“注释:预期为'char **',但参数类型为'char(*)[200]'”

时间:2020-05-27 01:43:52

标签: c arrays function multidimensional-array

在我的程序中,我声明了以下内容:

char S[1000][200]; 

一个字符串数组,并具有如下功能:

char** buscar_str(char **S){.......}

但是当我尝试这样做时:

buscar_str(S);

我收到提到的错误note: expected ‘char **’ but argument is of type ‘char (*)[200]

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

尚无立即解决此问题的方法。给定char S[1000][200]S是200,000字节的内存,分为200个char的1000个数组。但是用buscar_str声明的例程char **buscar_str(char **S)需要一个指向一个或多个指向char的指针。 char中没有指向S的指针。您可以给一个,例如&S[0][0],但是最多只能给一个。

要解决此问题,您必须为指向char的指针数组分配空间,并用此类指针填充数组(也许指向char中的各种S),或者您必须更改buscar_str以接受指向数组的指针,例如char (*S)[200],或者不太可能接受指向数组的数组的指针,例如char (*S)[1000][200])。对于前者,您可以将S传递给buscar_str。对于后者,您可以将&S传递给buscar_str

在没有更多信息的情况下,我们无法告诉您哪种选择适合您的情况。