好的,这是守则的重要部分。这只是一段摘录。
在steuer.c中:
static char (*pointer)[8];
extern void test(char *pointer[]); // im not sure, whether this calling is correct
int main(void)
{
int i;
check = malloc(sizeof(*pointer) *10);
for(i=0;i<100;i++)
test(check[1]);
...
}
在compute.c中:
void test(char * compute[])
{
char temp="test";
if(strcmp(compute, temp) == 0)
return 1;
else
return 0;
}
问题是:预期»char **«但参数类型为»char *
由于
答案 0 :(得分:0)
问题是你已声明test
采用char*[]
参数 - 一个字符指针数组,也就是一个字符串数组。
在两个文件中都清楚你将它用作字符指针 - char*
- 因此应该只是一个字符串。
您需要将void test(char * compute[])
更改为void test(char *compute)
,以便这些类型正常运行。 (您还希望在其他声明中进行相同的更改。)
答案 1 :(得分:-1)
...样品
static char (* pointer)[8];
void test1(char * pointer){ ; }
void test2(char (* pointer)[8]){ ; }
int main(void){
char (*check)[8] = malloc(sizeof(*pointer) *10);
test1(&check[0][0]);
test2(check);
return 0;
}