Guest User

Untitled

a guest
May 21st, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.28 KB | None | 0 0
  1.  
  2.    
  3.     free_all(students,courses);
  4.     return 0;
  5. }
  6.  
  7. void free_all(slist *sl, clist *cl){
  8.     clist *tempCL;
  9.     slist *tempSL;
  10.    
  11.     if(cl){                         // only if it is necessary, clist release for every student
  12.         tempSL=cl->info->students;
  13.         while(tempSL){                     
  14.             free_clist(tempSL->info->courses);
  15.             tempSL=tempSL->next;
  16.         }
  17.     }
  18.  
  19.     tempCL=cl;              // releasing slists for every course
  20.     while(tempCL){
  21.         free_slist(tempCL->info->students);
  22.         tempCL=tempCL->next;
  23.     }
  24.  
  25.  
  26.     tempSL=sl;
  27.     while(tempSL){                  //strings release
  28.         free(tempSL->info->name);
  29.         tempSL=tempSL->next;
  30.         var--;
  31.     }
  32.  
  33.     tempCL=cl;
  34.     while(tempCL){
  35.         free(tempCL->info->title);
  36.         tempCL=tempCL->next;
  37.         var--;
  38.     }
  39.  
  40.     tempSL=sl;         
  41.     while(tempSL){              // "students card" release
  42.         free(tempSL->info);
  43.         tempSL=tempSL->next;
  44.         var--;
  45.     }
  46.  
  47.     tempCL=cl;                 
  48.     while(tempCL){              // "course card" release
  49.         free(tempCL->info);
  50.         tempCL=tempCL->next;
  51.         var--;
  52.     }
  53.  
  54.     free_clist(cl);     // releasing main course list and main student list
  55.     free_slist(sl);
  56.  
  57.     printf("\n malloc: %d\n", var);    
  58.  
  59. }
  60.  
  61. void free_clist(clist *head){
  62.     if(head==NULL)
  63.         return;            
  64.     free_clist(head->next);
  65.     free(head);
  66.     var--;
  67. }
  68.  
  69. void free_slist(slist *head){
  70.     if(head==NULL)
  71.         return;            
  72.     free_slist(head->next);
  73.     free(head);
  74.     var--;
  75. }
Add Comment
Please, Sign In to add comment