# PoolAllocator::Contains 判断指针是否落在当前池的地址范围内。 ```cpp bool Contains(void* ptr) const; ``` ## 行为说明 当前实现只做范围判断: 1. 如果 `ptr == nullptr` 或 `m_memory == nullptr`,返回 `false`。 2. 计算 `ptr` 相对池起始地址的偏移。 3. 用构造阶段的实际 block 步长乘以 `m_totalBlocks`,得到整个池的地址范围。 4. 只要偏移仍在这个范围内,就返回 `true`。 这意味着: - 它是范围检查,不是“当前已分配块”的检查。 - 指向某个 block 中间位置的指针也可能返回 `true`。 - 已经释放回池的指针仍可能返回 `true`。 - 它不验证指针是否落在 block 边界上。 ## 参数 - `ptr` - 待检测指针。 ## 返回值 - `bool` - 指针位于池地址范围内时返回 `true`;否则返回 `false`。 ## 相关文档 - [返回类型总览](PoolAllocator.md) - [Free](Free.md)