69,373
社区成员
发帖
与我相关
我的任务
分享
#define MAX_NODE_NO 1024
struct node {
char data[60];
struct *next;
};
struct memchunk {
char flag[MAX_NODE_NUM];
struct node node_buf[MAX_NODE_NUM];
}
memchunk_init(void)
{
chunk = (struct memchunk *)shmat(sizeof(struct mmechunk));
memset(chunk->flag, 0, sizeof(chunk->flag));
}
struct node *
node_alloc()
{
int i;
for (i = 0; i < MAX_NODE_NUM; i++) {
if (0 == chunk->flag[i]) {
chunk->flag[i] = 1;
return &chunk->node_buf[i];
}
}
return 0;
}
void
node_free(struct node *p_node)
{
int index;
i = p_node - chunk->node_buf;
chunk->flag[i] = 0;
}