Zhichao.Yan
Zhichao.Yan
**想要支持新的语言:** 语言:md类型文件 目前插件生成的模板: ```md --- author : xxx Date : 2023-11-24 23:14:51 +0800 LastEditors : xxx date : 2023-11-25 00:09:46 +0800 FilePath : xxx Description : QQ : xxx Copyright...
初始化内存池时,此时内存池作为一个大的空闲块,其尾部也应该有指针指向首地址,此次没有相应操作 像这样: `*(mp_chunk**)((char*)ck + ck->size - MP_CHUNK_POINTER) = ck;` ```c #define MP_INIT_MEMORY_STRUCT(mm, mempool_sz) \ do { \ mm->mempool_size = mempool_sz; \ mm->alloc_mem = 0; \ mm->alloc_prog_mem = 0; \ mm->free_list...
``` static int merge_free_chunk(MemoryPool* mp, _MP_Memory* mm, _MP_Chunk* c) { _MP_Chunk *p0 = c, *p1 = c; while (p0->is_free) { p1 = p0; // bug:向前面搜索邻接内存块貌似有错?p0是作为内存块_MP_Chunk首地址,而不是分配给用户的内存空间的首地址,因此不应该减去MP_CHUNKHEADER // ++if ((char*) p0 -...
1. 请问:mp->mempool_size代表的什么意思?是默认的一个标准内存池大小吗? 2. 剩余可新增内存池大小不是应该等于mp->max_mempool_size - mp->alloc_mempool_size吗? ``` if (mp->auto_extend) { // 超过总内存限制 if (mp->alloc_mempool_size + total_needed_size > mp->max_mempool_size) { goto err_out; } // 问题1: mem_size_t add_mem_sz = mp->max_mempool_size - mp->mempool_size;...