嘿大家, 我在我的代码中收到编译错误,我不知道该怎么办。 这里是块:不兼容的指针类型错误
#include <stdio.h>
#include <string.h>
/*
* Function to return index at which team ID input is stored
*/
int getIndex(char* id, char* idList[][50]) {
int k;
for (k=0; k<50; k++) {
if (strcmp(id,idList[k])==0) {
return k;
}
}
printf("Error in getIndex function.\n");
return -1;
}
和错误上说在一个代码块8号线(if语句)发生
Passing argument 2 of 'strcmp' from incompatible pointer type
错误。
编辑 (贴在这里代表迈克尔,因为他不能编辑自己的帖子还)
我指定我想做的事,因为我并没有真正做好在那。
我想要id [],它应该是最多50个字符的数组,与idList [] [](它是一个字符串数组(最多50个字符串,每个字符最多50个字符))进行比较。
我改变了我的代码,这样,
/*
* Function to return index at which team ID input is stored
*/
int getIndex(char* id[], char* idList[][50]) {
int k;
for (k=0; k<50; k++) {
if (strcmp(id[],idList[k][])==0) {
return k;
}
}
printf("Error in getIndex function.\n");
return -1;
}
,但得到一个错误说:
Expected expression ']' before token
我试图用idList [k] [](我不确定k是否在右括号中)比较id [](我省略了代码中的括号)。我想比较'字符串'id和idList中的所有'字符串'(每个字符包含50个字符的50个字符串)。 – Michael 2010-10-25 02:26:20
@Michael:如果idList是50个字符串的列表,那么它可以被声明为'char * idList [50]',同时铭记编译器不会强制它真的是50.你声明'idList '作为'char *'的二维数组,但似乎你想要一个'char *'的数组。 – 2010-10-25 02:35:29