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