/* 以下为定义的结构体 */
/*
* 利用通用链表将block进行管理,其中一条链表管理所有的节点,另一条管理空闲节点。
*/
#include<stdio.h>
#include<stdlib.h>
#define offsetof(block,member)/
(uint_32)&(((block *)0)->member) /* 偏移量*/
typedef unsigned long uint_32;
typedef struct block block;
typedef struct node node;
struct node /* 管理整个数据的结构体*/
{
node *pre;
node *next;
};
struct block
{
int flag; /* 1: used;0:free */
uint_32 adm_size; /* manage space */
node all; /*用于管理未使用地址*/
node free; /* 用于管理已使用地址*/
};
block malloc_header; /* the header of link;*/
void *memery = NULL;
uint_32 save_size;
本文介绍了一种利用通用链表进行内存块管理的方法,通过定义特定的结构体来跟踪内存块的状态(使用中或空闲)。该方案采用两条链表分别管理所有内存节点和空闲节点,旨在提高内存分配和回收的效率。
7926

被折叠的 条评论
为什么被折叠?



