Привет всем, Я получаю ошибку компиляции в своем коде, и я не могу понять, что делать. Вот блок:Ошибка несовместимого указателя Ошибка
#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;
}
и ошибка говорит
Passing argument 2 of 'strcmp' from incompatible pointer type
ошибка происходит на 8-й строке кода в блоке (если заявление).
EDIT (размещена здесь от имени Михаила, так как он не может редактировать свои сообщения пока)
уточню, что я хотел сделать, так как я на самом деле не делают хорошую работу при этом.
Мне нужен 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
Я пытался сравнить id [] (я оставил скобки в коде) с idList [k] [] (я не уверен, что k находится в правой скобке). Я хочу сравнить идентификатор «string» со всеми «строками» в idList (содержит 50 строк по 50 символов каждый). – Michael
@Michael: если idList - это список из 50 строк, то он может быть объявлен как 'char * idList [50]', имея в виду, что компилятор не будет принудительно применять то, что ему действительно 50. Вы объявили 'idList 'как 2-мерный массив' char * ', но, похоже, вам нужен массив' char * '. –