О, мальчик!
Прежде всего, что вы делаете правильно или, по крайней мере, так кажется. Вы привлекаете внимание и получаете баллы за upvotes, несмотря на то, что код выглядит как введенный непосредственно в поле редактора в Stackoverflow и никогда не проверяется ни с каким компилятором. Хорошая работа :)
Теперь что случилось. Список длинный, но некоторые советы
void main()
{
PERSON person[100];
int *total;
funcB(people, &total);
}
void funcB(PEOPLE people[], int *total);
Было бы хорошо, если бы Вы показали нам определение (возможно) структуры НАРОДА и PERSON. В коде мы видим, что нет определения людей - переменной, которую вы передаете funcB. Вы определяете указатель на int-total и не инициализируете его. Затем вы передаете адрес этого указателя на funcB, который принимает int * not int ** как второй аргумент. Эти типы несовместимы.
void funcB(PEOPLE people[], int *total)
{
int i;
for (i = 0; i < total; i++) {
printf("%s\n", people[i].name);
}
funcA(people, &total);
}
void funcA(PEOPLE people[], int *total)
Вы используете указатель в условии цикла вместо указанного значения. Нет значения, потому что вы не инициализировали указатель в основном, но здесь у вас есть несовместимые типы в состоянии. Вы передаете адрес указателя на funcA вместо указателя, как в основном.
void funcA(PEOPLE people[], int *total)
{
FILE *fp;
char line[100];
fp = fopen("example.txt", "r");
if (fp == NULL) {
exit(1);
}
else {
fgets(line, 100, fp); //get a number from the txt
total = atoi(linha); //convert to int
}
}
используется неопределенный символ «Linha» - я думаю, что это опечатка в «линии». Затем вы назначаете int указателю вместо int, на который указывает этот указатель.
Пожалуйста, правильно отпечатайте свой код. – Javier
Если я не читаю это неправильно, не уверен, что это даже компилируется. Конечно, я не написал пролив C через некоторое время. Таким образом, вы передаете массив PERSON в метод, который принимает массив PEOPLE. Кроме того, вы делаете atoi в linha, который я не вижу нигде. Что такое массив, который используется для фактического использования. Функция funcA не использует его. Поэтому, я думаю, мой вопрос - это то, что вы пытаетесь выполнить, и что ваш код не делает? –