// 简单内存池示例
#define BLOCK_SIZE 64
#define BLOCK_COUNT 10
static uint8_t memory_pool[BLOCK_SIZE * BLOCK_COUNT];
static uint8_t block_used[BLOCK_COUNT] = {0};
void* pool_malloc(size_t size) {
if (size > BLOCK_SIZE) return NULL;
for (int i = 0; i < BLOCK_COUNT; i++) {
if (!block_used[i]) {
block_used[i] = 1;
return &memory_pool[i * BLOCK_SIZE];
}
}
return NULL;
}
void pool_free(void* ptr) {
// 实现内存块释放逻辑
} |