0
я получаю эту ошибку:компиляции ошибка «уступка от несовместимого типа указателя»
$ gcc -Wall -g translate.c support.c scanner.c -o translate
support.c: In function ‘readTokens’:
support.c:66:18: warning: assignment from incompatible pointer type [enabled by default]
a[count] = token;
^
здесь является readTokens():
void
readTokens(char *fileName, char** a[])
{
FILE *fp;
char *token;
int count = 0;
fp = fopen(fileName, "r");
if (fp == 0)
{
fprintf(stderr,"file %s could not be opened for reading\n", fileName);
exit(1);
}
token = readLine(fp);
while(!feof(fp))
{
a[count] = token;
++count;
free(token);
token = readLine(fp);
}
fclose(fp);
}
я задал вопрос, похожее на это раньше, и думал, что я мог бы выяснить это из ответов, но это все еще дает мне неприятности.
Тип 'токен' - это символ 'char *', тип 'a []' is 'char **', поэтому типы их несовместимы. Мое предположение - тип [] может быть «char *». –
его не a [] представляет собой массив строк, созданных в функции до этого, и im пытается прочитать маркеры и передавать их в массив через функцию while. –
работает, если я пишу [count] = (char **) маркер; но когда я читаю массив на экране, чтобы проверить его только последний элемент в файле, повторенный пучок –