- 论坛徽章:
- 0
|
回复 #1 youshuang 的帖子
我写的一个内存池,以此代表自己的能力
typedef struct {
void *addr;
bool use;
} _mem_slice_t;
typedef struct {
_mem_slice_t *slice_array;
uint32_t slice_size;
uint32_t slice_count_const;
uint32_t used_count;
} _mem_page_t;
typedef struct {
_mem_page_t *page_array;
_mem_slice_t *slice_array;
fr_hash_table_t *ht;
uint32_t slice_size;
uint32_t page_count;
uint32_t used_count;
} mem_pool_t;
struct my_protocol_header {
uint32_t length;
uint8_t type;
uint8_t padding[3];
};
mem_pool_t *mem_pool_create (uint32_t slice_size, uint32_t pre_count);
void mem_pool_destroy (mem_pool_t *pool);
void *mem_pool_malloc (mem_pool_t *pool);
bool mem_pool_free (mem_pool_t *pool, void **mem);
uint32_t mem_pool_get_used_count (mem_pool_t *pool);
uint32_t mem_pool_get_slice_count (mem_pool_t *pool); |
|