I have a global variable called exam which is of type struct Exam:
typedef struct 
{
    Question* phead;
}Exam;
Exam exam;
In a function I malloc space for the pointer phead:
int initExam()
{
    exam.phead = malloc(sizeof(Question*));
    exam.phead = NULL;
    return 1;
}
In a separate function I try to free this memory:
void CleanUp()
{
    unsigned int i = 0;
    Question* currentQuestion = exam.phead;
    while (currentQuestion != NULL) {
        // some other code
    }
    exam.phead = NULL;
}
I have also tried the following inside my function:
free(exam.phead);
My issue is it does not seem to free the memory allocated by malloc. I would like CleanUp() to free up the memory allocated by exam.phead and I cannot change the function signatures or move the free() calls to another function. Is there something I'm doing wrong? I'm fairly new to C programming. Thanks!
 
     
    