From 9b77ebda16adc5336458325792e3490e996e9785 Mon Sep 17 00:00:00 2001 From: Hywon woong Jang <jhw3169@naver.com> Date: Fri, 15 Jun 2018 19:08:26 +0900 Subject: [PATCH] Ver 3.2 Final edition --- alloc.c | 25 +++++++++++-------------- main.c | 10 +++++----- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/alloc.c b/alloc.c index bb1e227..58fe0c1 100644 --- a/alloc.c +++ b/alloc.c @@ -271,26 +271,21 @@ meta * search_and_split(size_t size) meta * temp = NULL; temp = META.Head; int temp_num = 0; - unsigned int diff; + int diff; unsigned int save; int i = 0; while(temp != NULL) { if(temp->free == 1 && temp->size >= size) { - // printf("nonono...\n"); + diff = temp->size - size; +// printf("diff %d\n",diff); +// printf("%c\n",Algorithm); if(Algorithm == 'F') { - if(diff >= 20) - return allocate(diff, size, temp); - else - { - temp -> free = 0; -// temp -> size = size; - - return temp; - } + // printf("diff %c\n",diff); + return allocate(diff, size, temp); } else if(Algorithm == 'W') { @@ -303,8 +298,10 @@ meta * search_and_split(size_t size) else if(Algorithm == 'B') { if(min == 0) + { min = temp -> size; - + temp_num = i; + } if(min > temp -> size) { min = temp -> size; @@ -353,13 +350,13 @@ meta * search_and_split(size_t size) meta * allocate(int diff, int size , meta *temp ) { - meta * save = NULL; + unsigned int save; save = temp; // printf("B allocate\n"); if(diff >= 20) { save = temp; - meta_header[n_link] = save + 16 +(unsigned int)size; + meta_header[n_link] = save + 16 + size; meta_header[n_link] -> free = 1; meta_header[n_link] -> next = temp -> next; meta_header[n_link] -> next -> prev = meta_header[n_link]; diff --git a/main.c b/main.c index 80112d6..9cdfcdb 100644 --- a/main.c +++ b/main.c @@ -22,13 +22,13 @@ int main(int argc, char ** argv) fgets(buf, sizeof(buf), fp); save = strtok(buf , " "); flag = atoi(save); - save = strtok(buf , " "); - if(strcmp(save , "W") == 0) + save = strtok(NULL , "\n"); +// printf("strlne algo : %d\n",strlen(save)); + if(save[0] == 'W') Algorithm = 'W'; - else if(strcmp(save , "B") == 0) + else if(save[0] == 'B') Algorithm = 'B'; - - else if(strcmp(save , "F") == 0) + else if(save[0] == 'F') Algorithm = 'F'; while(i++ < flag) { -- GitLab