Files
XCEngine/docs/api/memory/pool-allocator/contains.md

39 lines
877 B
Markdown
Raw Normal View History

# PoolAllocator::Contains
```cpp
bool Contains(void* ptr) const;
```
检查给定的指针是否属于此内存池的地址范围。由于池在构造时预分配连续内存,可通过指针地址区间判断所有权。此方法用于调试和内存验证。
**参数:**
- `ptr` - 要检查的指针
**返回:** 指针属于此池返回 `true`,否则返回 `false`
**复杂度:** O(1)
**示例:**
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
PoolAllocator pool(sizeof(int), 100);
void* inside = pool.Allocate();
void* outside = ::operator new(sizeof(int));
if (pool.Contains(inside)) {
// inside 属于此内存池,可以安全 Free
}
if (!pool.Contains(outside)) {
// outside 不属于此池,不能调用 pool.Free()
::operator delete(outside);
}
```
## 相关文档
- [PoolAllocator 总览](pool-allocator.md) - 返回类总览