Итак, я работаю с этой структурой:
typedef struct{
int id;
int *grades;
}Student;
Там, где у студента есть идентификатор и массив оценок, которые могут иметь от 1 до 40000 элементов.
Я хочуесть функция для добавления нового студента, вроде этого:
void newSt(int id, int *grades){
Student st;
st.id = id;
/*adding grades*/
/*other operations I might want to do*/
}
Но я немного запутался в том, как работать с указателями и распределением памяти, так как я знаю, что никогда не будет больше 40000элементы, возможно, я мог бы сделать:
st.grades = malloc(40000*sizeof(int);
Но тогда я не знаю, сколько элементов имеет класс, который я хочу добавить.Я не думаю, что не могу перераспределить оценки массива до 40000 элементов, потому что я никогда ничего не выделял.Какой лучший способ для меня это сделать?