Как изменить размер массива во время работы программы на C

Итак, я пытаюсь составить программу, в которой я перечисляю количество студентов. Здесь вы видите, что я спрашиваю количество студентов у пользователя и использую malloc для выделения размера массива.

typedef struct{
    char name[MAXSTRING];
    int id;
} student;

int main()
{
    student *array;
    int ch, amount;

    printf("Give the amount of students\n");
    scanf("%d", &ch);

    array = (student*) malloc(amount*sizeof(student));

    //Some code, also includes free() for allocated memory
    return 0;
}

Теперь допустим, что пользователь вводит "100", но затем он перечисляет 100 студентов, но затем он хочет перечислить еще 5. Что я могу сделать, чтобы выделить дополнительные 5 студентов. Также, как сделать так, чтобы каждый раз, когда он превышал лимит, я мог распределять его снова и снова.

Заранее спасибо.

0 ответов

Другие вопросы по тегам