Я пишу код, который использует функцию для возврата указателя на структуру, которая выделяется динамически. Тем не менее, мой код не читает строки. Когда я запускаю его, он просто переходит на часть «Введите имя», я печатаю возраст и печатает возраст и ничего для имени. Странно, код работает, когда я использую scanf для чтения строки, но это не работает с get или fgets. Может ли кто-нибудь помочь мне? Заранее спасибо.
#include <stdio.h>
#include <stdlib.h>
struct details
{
char name[100];
int age;
};
struct details * details_pointer(int n)
{
struct details *pointer = (struct details *) malloc (n*sizeof(struct details));
for (int i=0; i<n; i++)
{
printf("Student %d:\n", i);
printf("name:\n");
scanf("%s", pointer[i].name);
//gets(pointer[i].name); not working
//fgets(pointer[i].name, 100, stdin); not working
printf("age:\n");
scanf("%d", &pointer[i]. age);
}
return pointer;
}
int main()
{
int n;
printf("Type the number of persons:\n");
scanf("%d", &n);
struct details *student = details_pointer(n);
for (int i=0; i<n; i++)
{
printf("\nName: %s", (*(student+i)).name);
printf("Age: %d\n", (*(student+i)).age);
}
free(student);
system("pause");
return 0;
}