The only reason of using malloc is the experience of using it in C and C++.
Is it the line below allocating the blocks of memory?
MAX_PLAYER_LIST = 100;
MAX_LEVEL = 25
playScoreArr = malloc(MAX_PLAYER_LIST * MAX_LEVEL * sizeof(PLAYER_SCORE_STRUCT));
And actually I can free(playScoreArr[numOfRecords-2]), the only problem is that I can't free the index on numOfRecords-1 index (the last element)..