diff --git a/alloc.c b/alloc.c
index 931b9fd59da6368f6a48cfa9f681133f918b162b..429f2ce5ed3c55f9fbfe833188d118ccd0f4eb6a 100644
--- a/alloc.c
+++ b/alloc.c
@@ -1 +1,37 @@
 #include "alloc.h"
+#include <stdio.h>
+
+
+void *make_malloc(size_t size){
+
+    if(!start){
+        if((start=sbrk(0))){ // break
+            end=start;
+            find=-1;
+            }
+        else
+            printf("break address call error");  
+    }
+   
+    if((find == -1) || (find->next==NULL)){
+        k_malloc = end;
+
+        if(sbrk(size)==-1)
+            return 0;
+          
+        k_malloc->next=NULL;
+        k_malloc->free=0;
+        k_malloc->size=size;
+        k_malloc->prev=find;
+
+        end += size;
+         
+        if(find!=-1)
+            find->next=k_malloc;
+
+        find=k_malloc;
+    }
+
+    return find->offset;
+}
+