#define SIZE 50
#define SSIZE 15
typedef struct player
{
char* fname;
char* lname;
char* ID;
int age;
}player;
typedef struct team
{
char* teamname;
player* players;
int n_players;
}team;
typedef struct league
{
team* teamarr;
int numofteams;
player arrplayers [SIZE];
int numofplayers ;
}league;
void freememory (league* ptr)
{
int i,j;
for ( i=0 ;i<(ptr->numofplayers);i++)
{
free(ptr->arrplayers[i].fname);
free(ptr->arrplayers[i].lname);
free(ptr->arrplayers[i].ID);
}
for (i=0;i<(ptr->numofteams);i++)
{
for(j=0;j<(ptr->teamarr[i].n_players);j++)
{
free(ptr->teamarr[i].players[j].fname);
free(ptr->teamarr[i].players[j].lname);
free(ptr->teamarr[i].players[j].ID);
}
}
for (i=0;i<(ptr->numofteams);i++)
{
free (ptr->teamarr[i].players);
free (ptr->teamarr[i].teamname);
}
free(ptr->teamarr); ---- השורה הבעייתית
exit(1);
}
int main ()
{
league L1 ;
L1.numofplayers=0;
L1.numofteams=0;
freememory(&L1);
}
}