Ваш код не может скомпилировать в этом состоянии.
Ваш компилятор должен сообщить вам, почему некоторые строки не компилируются, сначала попытайтесь исправить ошибки.
После исправления ошибок включите предупреждение компилятораи обработайте их.
Строка
#include <string.h >
вызовет эту ошибку: fatal error: string.h : No such file or directory
Почему пробел между h
и >
?
Не следует использовать функцию gets
: с человек получает
Никогда не использовать get ().Поскольку невозможно заранее знать, не зная данных, сколько символов будет считывать get (), а поскольку gets () будет продолжать хранить символы после конца буфера, использовать его крайне опасно.Он был использован для взлома компьютерной безопасности.Вместо этого используйте fgets ().
Получается (people [i] .name);
должно быть
fgets(stdin, people[i].name, sizeof people[i].name);
В следующей строке отсутствует точка .
scanf("%d", &people[i]age);
Поскольку x
равно 0, на следующей строке разыменовывается указатель NULL
(который вам не нужен):
scanf("%d", x);
Вы должны написать:
scanf("%d", &x);
Затем вы вызываете функцию imp
для people[i]
, но imp
не объявлено, и я не определен (это переменная, локальная для цикла for
)
imp(people[i]);
Недопустимое определение imp
:
int imp(struct dat people[i])
Должно быть что-то вроде:
/* function to display ONE person */
int imp(struct dat people)
или
/* function to display ALL peopel */
int imp(struct dat *people, int number_of_people)