Я скопировал C-код из книги, он все равно не работает.Linux

Ответить
Anonymous
 Я скопировал C-код из книги, он все равно не работает.

Сообщение Anonymous »

Я изучаю C для разработки систем. Я читаю книгу «Язык программирования C». Я изучаю функции из первой главы. Я наткнулся на этот пример кода, проблема этого раздела также имеет идентичный код. Пока я пытался решить проблему, у меня возникли некоторые ошибки, я работал над ними, но одна все еще была. Затем я скопировал код из книги, и он все равно выдавал ту же ошибку. Ниже приведен код:

Код: Выделить всё

#include 
#define MAX 1000

int getl(char line[], int lim);
void copy(char to[], char from[]);

int main(){
int len, max;
max = 0;
char line[MAX];
char longest[MAX];
while((len = getl(line, MAX)) > 0)
if (len > max) {
max = len;
copy(longest, line);
}
if (max > 0)
printf("%s\n", longest);
return 0;
}

int getl(char line[], int lim[])
{
int c, i;

for (i = 0; (i < lim -1) && (c = getchar()) != EOF && (c != ' '; ++i))
line[i] = c;
if (c == '\n') {
line[i] = c;
++i;
}
line[i] = '\0';
return i;

}

void copy(char to[], char from[])
{
int i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
ошибка:

Код: Выделить всё

file.c:22:5: error: conflicting types for ‘getl’; have ‘int(char \*, int \*)’
22 | int getl(char line\[\], int lim\[\])
|     ^\~\~\~
file.c:4:5: note: previous declaration of ‘getl’ with type ‘int(char \*, int)’
4 | int getl(char line\[\], int lim);
Я попытал счастья, но не получилось.


Подробнее здесь: https://stackoverflow.com/questions/790 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»