Динамическая память и структуры - C (СИ)

Формулировка задачи:

не получается считать данные из stdin есть структура:
typedef struct
{       char name[M];
        int grade[K];
} student;
есть функция создания нового элемента массива типа sudent:
int add_item (student *p, int n)
{
    student *q=NULL;
    q = (student *) realloc (p,(n+1)*sizeof(student));
    if (q = NULL)
    {
        printf("Невозможно выделить память\n");
        system("pause");
        return n;
    }
    p=q;
    printf("Enter last name and grades\n"); 
    fscanf(stdin,"%s",q[n].name);
    fflush();
    return n+1; 
}
n - количество записей в массиве ошибка вылетает при попытке считать строку из stdin в q[n].name если есть у кого соображения подскажите, а то уже пол дня убил)

Код к задаче: «Динамическая память и структуры - C (СИ)»

textual
int add_item (student *p, int n)
{
    student *q = (student *) realloc (p,(n+1)*sizeof(student));
    if (q = NULL)
    {
        printf("Невозможно выделить память\n");
        return n;
    }
    p=q;
    printf("Enter last name and grades\n"); 
    fscanf(stdin,"LastName - %s", q->name);
    fscanf(stdin, "grade1 = %d", &q->grade[0]);
    fscanf(stdin, "grade2 = %d", &q->grade[1]);
    fscanf(stdin, "grade2 = %d", &q->grade[2]);
    return n+1; 
}

13   голосов, оценка 3.769 из 5


СОХРАНИТЬ ССЫЛКУ