diff --git a/test/core/allocator.hpp b/test/core/allocator.hpp new file mode 100644 index 0000000..9ca9878 --- /dev/null +++ b/test/core/allocator.hpp @@ -0,0 +1,13 @@ +// ============== 作业 ======================== +// TODO: 可能需要设计一个数据结构来存储free block,以便于管理和合并 +// HINT: 可以使用一个 map 来存储 free block, key 为 block 的起始/结尾地址,value 为 block 的大小 + +#include + +// 使用两个映射来管理空闲块 +// freeBlocksByStart: key为起始地址, value为块大小 +// freeBlocksBySize: key为块大小, value为起始地址集合(可能有多个相同大小的块) +std::map freeBlocksByStart; +std::map> freeBlocksBySize; + +// ============== 作业 ========================