在我的程序中,我声明了以下内容:
char S[1000][200];
一个字符串数组,并具有如下功能:
char** buscar_str(char **S){.......}
但是当我尝试这样做时:
buscar_str(S);
我收到提到的错误note: expected ‘char **’ but argument is of type ‘char (*)[200]
。
如何解决此问题?
答案 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
。
在没有更多信息的情况下,我们无法告诉您哪种选择适合您的情况。