用链表实现一个简单的内存管理机制
1、定义一个内存节点的结构体链表,这个节点是一个内存空余空间节点,应该包括节点首地址,节点大小,节点状态(占用还是空闲),下个节点指针等;
2、初始化首个节点(如果由空节点做头指针,空节点不算首个节点),给首个节点申请一片大的内存空间(1M以上);
3、实现申请内存操作:申请内存,跟库函数malloc功能相似,从首节点开始,判断空余节点空间是否大于申请空间,如果是,就从空余节点空间分割出一个申请空间的节点,将此节点设为占用,余下空间设为空余另成一个节点。申请空间就是找到满足大小要求的空闲节点,一分为二,一占用一空闲。也可以设定空闲空闲小于一个常量,就不再分了,全部占用。
4、实现释放内存操作:释放内存,跟库函数free类似,就是将占用节点的状态设为空闲,但是,需要判断前后节点是否也是空闲,如果前后节点是空闲,则需要合并节点。释放内存,就存在多合一的操作。
5、编写一个主程序,用菜单实现内存操作的演示,动态展示当前内存空余多少,占用多少。
不知道你这个问题是否已经解决, 如果还没有解决的话: