Пример исходного файла


#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Student.h"

struct Student {
    char name[64];
    char id[16];
    Grade grades [MAX_COURSES];
};

Grade StudentGetGrade(Student * stud, Grade grade) {
    return stud ->grades[grade];
}
Student * StudentCreate(const char * name , const char * id) {
    Student *stud  = calloc(1, sizeof(Student));
    if (!stud) {
        fprintf(stderr, "%s, %d: Failed to allocate memory\n", __FILE__, __LINE__);
        exit(-1);
    }
    strcpy(stud->name, name);
    strcpy(stud->id, id);
    memset(stud,NO_GRADE, MAX_COURSES);
    return stud;
}

void StudentDestroy(Student* student) {
    free(student);
}


void StudentSetGrade(Student*  stud , Course course, Grade grade ){
    if( (course > MAX_COURSES) ){
        if (!stud) {
            fprintf(stderr, "%s, %d: Failed to allocate memory\n", __FILE__, __LINE__);
            exit(-1);
        }
    }
    stud->grades[course] = grade;

}

Mero