Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- free_all(students,courses);
- return 0;
- }
- void free_all(slist *sl, clist *cl){
- clist *tempCL;
- slist *tempSL;
- if(cl){ // only if it is necessary, clist release for every student
- tempSL=cl->info->students;
- while(tempSL){
- free_clist(tempSL->info->courses);
- tempSL=tempSL->next;
- }
- }
- tempCL=cl; // releasing slists for every course
- while(tempCL){
- free_slist(tempCL->info->students);
- tempCL=tempCL->next;
- }
- tempSL=sl;
- while(tempSL){ //strings release
- free(tempSL->info->name);
- tempSL=tempSL->next;
- var--;
- }
- tempCL=cl;
- while(tempCL){
- free(tempCL->info->title);
- tempCL=tempCL->next;
- var--;
- }
- tempSL=sl;
- while(tempSL){ // "students card" release
- free(tempSL->info);
- tempSL=tempSL->next;
- var--;
- }
- tempCL=cl;
- while(tempCL){ // "course card" release
- free(tempCL->info);
- tempCL=tempCL->next;
- var--;
- }
- free_clist(cl); // releasing main course list and main student list
- free_slist(sl);
- printf("\n malloc: %d\n", var);
- }
- void free_clist(clist *head){
- if(head==NULL)
- return;
- free_clist(head->next);
- free(head);
- var--;
- }
- void free_slist(slist *head){
- if(head==NULL)
- return;
- free_slist(head->next);
- free(head);
- var--;
- }
Add Comment
Please, Sign In to add comment