问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#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();
}