请师傅补充代码,在void Best_allocate(int request)/*最佳适应分配函数,根据申请的request字节数来分配空间*/ { }这个模块,关于内存管理算法模拟

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <stdio.h>
#include <stdlib.h>

#define minsize 10   /*定义物理块的最小值*/

 typedef struct free_table{   /*定义未分配区表*/    
      long address;
    long size;
    struct free_table *next;
}Node,*NodeList ;
NodeList head;

void createLink()
{
    NodeList p;
      int n;    //链表长度(节点数目)
    head=(NodeList)malloc(sizeof(Node)); 
    p=head;
    printf("请输入空闲区域数:");
    scanf("%d", &n);    //链表长度(节点数目)
    while( n-- ) {
        p->next = (NodeList)malloc(sizeof(Node)); //创建1个新的链表节点 
        p = p->next;      //链表游标 -> 后移一个节点
        scanf("%d", &p->address); 
        scanf("%d", &p->size); 
    }
    p->next = NULL; //链表最后一个节点指向下一个节点的指针 --> 指向空NULL
}


void Best_allocate(int request)/*最佳适应分配函数,根据申请的request字节数来分配空间*/
{
   
}
void Link_printf()
{
   NodeList temp1;
   temp1=head->next;
   printf("分配后的空闲表如下:\n" );
   while(temp1){     
      printf("空闲起始地址为:%d;长度为:%d\n",temp1->address,temp1->size );
      temp1=temp1->next ;
   }
}
main()
{ 
  int a,request;
  createLink(); 
  printf("请输入作业申请长度:");
  scanf("%d",&request);
  Best_allocate(request);
  Link_printf();
}