char*mem;// 内存池起始地址 }mempool_t; intmp_init(mempool_t*m,intsize){ if(!m) return-1; if(size<16) size=16; m->block_size=size; m->mem=(char*)malloc(MEM_PAGE_SIZE); if(!m->mem) return-1; m->free_ptr=m->mem; m->free_count=MEM_PAGE_SIZE/size; char*ptr=m->free...
mem = (struct mem *)ram; //将堆空间ram 首地址强制转换成mem结构体类型,作为首个内存块,但这个内存块还未使用 mem->next = MEM_SIZE_ALIGNED; //把首个内存块的next指针指向了堆空间的最后一个地址(MEM_SIZE_ALIGNED为8*1024),后面实际在mem_malloc时会动态调整next索引, //从而得到实际分配内存空间即...