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

问题描述 投票:0回答:1
在我的程序中,我声明了以下内容:

char S[1000][200];

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

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

但是当我尝试这个时:

buscar_str(S);

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

我该如何解决这个问题?

c arrays function multidimensional-array
1个回答
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

没有更多信息,我们无法告诉您这些选项中的哪一种适合您的情况。

© www.soinside.com 2019 - 2024. All rights reserved.