docs: rebuild Memory API content

This commit is contained in:
2026-03-26 18:02:29 +08:00
parent ce2eee32e3
commit dc252502ac
66 changed files with 1182 additions and 1066 deletions

View File

@@ -1,32 +1,43 @@
# PoolAllocator::Allocate
公开方法,详见头文件声明
从空闲链表中取出一个固定块
```cpp
void* Allocate(size_t size, size_t alignment = 0) override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
- `size` - 参数语义详见头文件声明。
- `alignment` - 参数语义详见头文件声明。
当前实现按以下顺序执行:
**返回:** `void*` - 返回值语义详见头文件声明
1. 如果空闲链表为空,返回 `nullptr`
2. 如果 `size > m_blockSize`,返回 `nullptr`
3. 取出链表头节点,把 `m_freeBlocks` 减一。
4. 直接返回该节点地址。
**示例:**
需要特别注意:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
- `alignment` 参数在当前实现中被完全忽略。
- 只要 `size <= m_blockSize`,调用就会占用整个 block不会按请求大小切分。
- `size == 0` 也会消耗一个 block。
- 返回地址来自构造阶段预先切好的池,不会在调用时再次向系统堆申请内存。
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::Allocate(...)
(void)object;
}
```
## 参数
- `size` - 请求大小;必须不大于构造时的 `blockSize`
- `alignment` - 调用期对齐要求;当前实现不使用它。
## 返回值
- `void*` - 成功时返回一个 block 的起始地址;池已耗尽或请求过大时返回 `nullptr`
## 使用建议
-`size` 理解为“上界检查”而不是“真实占用字节数”。
- 如果调用方依赖逐次调用时的不同对齐要求,当前实现并不满足这种需求。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Free](Free.md)
- [Contains](Contains.md)

View File

@@ -1,31 +1,45 @@
# PoolAllocator::PoolAllocator()
# PoolAllocator::Constructor
构造对象
构造一个固定块池分配器
```cpp
PoolAllocator(size_t blockSize, size_t poolSize, size_t alignment = 8);
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
- `blockSize` - 参数语义详见头文件声明。
- `poolSize` - 参数语义详见头文件声明。
- `alignment` - 参数语义详见头文件声明。
构造函数会一次性完成两件事:
**返回:** `void` - 无返回值
1. 计算每个 block 的实际步长 `actualBlockSize`
2. 申请一整块池内存,并把它串成单向空闲链表。
**示例:**
`alignment > 0` 时,当前实现使用下面的位运算向上取整:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
}
(blockSize + alignment - 1) & ~(alignment - 1)
```
随后它会调用 `std::malloc(actualBlockSize * poolSize)`,并在这块连续内存上建立空闲链表。
## 参数
- `blockSize` - 逻辑 block 大小,也是 [Allocate](Allocate.md) 允许的最大请求大小。
- `poolSize` - block 数量。
- `alignment` - block 步长对齐粒度;默认值为 `8`
## 返回值
- 无。
## 当前实现限制
- 当前没有验证 `alignment` 是否是 2 的幂。
- 当前没有防御 `blockSize == 0``poolSize == 0` 或底层分配失败。
-`poolSize == 0``malloc` 失败时,后续空闲链表初始化可能进入未定义行为,因此调用方应保证参数有效。
- 对齐只影响 block 步长,不保证 `malloc` 返回的池起始地址本身满足同样的高阶对齐要求。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Destructor](Destructor.md)
- [GetBlockSize](GetBlockSize.md)

View File

@@ -1,31 +1,36 @@
# PoolAllocator::Contains
公开方法,详见头文件声明
判断指针是否落在当前池的地址范围内
```cpp
bool Contains(void* ptr) const;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
- `ptr` - 参数语义详见头文件声明。
当前实现只做范围判断:
**返回:** `bool` - 返回值语义详见头文件声明
1. 如果 `ptr == nullptr``m_memory == nullptr`,返回 `false`
2. 计算 `ptr` 相对池起始地址的偏移。
3. 用构造阶段的实际 block 步长乘以 `m_totalBlocks`,得到整个池的地址范围。
4. 只要偏移仍在这个范围内,就返回 `true`
**示例:**
这意味着:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
- 它是范围检查,不是“当前已分配块”的检查。
- 指向某个 block 中间位置的指针也可能返回 `true`
- 已经释放回池的指针仍可能返回 `true`
- 它不验证指针是否落在 block 边界上。
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::Contains(...)
(void)object;
}
```
## 参数
- `ptr` - 待检测指针
## 返回值
- `bool` - 指针位于池地址范围内时返回 `true`;否则返回 `false`
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Free](Free.md)

View File

@@ -1,29 +1,31 @@
# PoolAllocator::~PoolAllocator()
# PoolAllocator::Destructor
销毁对象并释放相关资源
销毁整个池并释放底层大块内存
```cpp
~PoolAllocator() override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:** 无。
**返回:** `void` - 无返回值。
**示例:**
当前实现只做一件事:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 对象离开作用域时会自动触发析构。
}
std::free(m_memory);
```
它不会遍历池中的对象,也不会为池中存放的 C++ 对象调用析构函数。换句话说,`PoolAllocator` 只负责原始内存块,不负责对象生命周期管理。
## 返回值
- 无。
## 使用建议
- 如果 block 中放的是需要析构的对象,应由调用方先显式析构对象,再销毁分配器。
- 分配器销毁后,之前返回的所有 block 指针都会变成悬空指针。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Free](Free.md)

View File

@@ -1,31 +1,38 @@
# PoolAllocator::Free
公开方法,详见头文件声明
把一个 block 放回空闲链表
```cpp
void Free(void* ptr) override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
- `ptr` - 参数语义详见头文件声明。
当前实现非常直接:
**返回:** `void` - 无返回
1. 如果 `ptr == nullptr`,直接返回。
2.`ptr` 视为 `FreeNode*`
3. 把该节点插回空闲链表头部。
4.`m_freeBlocks` 加一。
**示例:**
## 参数
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
- `ptr` - 要归还的 block 指针。
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::Free(...)
(void)object;
}
```
## 返回值
-
## 当前实现限制
- 不验证 `ptr` 是否真的来自当前池。
- 不验证 `ptr` 是否位于 block 边界。
- 不防止重复释放。
- 如果把不属于当前池的地址传进来,可能破坏空闲链表甚至直接写坏任意内存。
- 如果重复释放同一块,`m_freeBlocks` 可能大于 `m_totalBlocks`,随后统计接口会失真甚至发生无符号下溢。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Allocate](Allocate.md)
- [Contains](Contains.md)

View File

@@ -1,30 +1,31 @@
# PoolAllocator::GetAllocationCount
获取相关状态或对象
查询当前已分配 block 数量
```cpp
size_t GetAllocationCount() const override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:** 无。
**返回:** `size_t` - 返回值语义详见头文件声明。
**示例:**
当前头文件内联实现返回:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetAllocationCount(...)。
(void)object;
}
m_totalBlocks - m_freeBlocks
```
这反映的是“当前在用 block 数”,不是累计分配次数。
## 返回值
- `size_t` - 当前在用 block 数。
## 注意事项
- 这个值依赖 [Free](Free.md) 正确维护 `m_freeBlocks`
- 如果发生重复释放或错误释放,`m_freeBlocks` 可能超过 `m_totalBlocks`,此处会出现无符号下溢并返回失真的大数值。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [GetFreeBlockCount](GetFreeBlockCount.md)

View File

@@ -1,30 +1,27 @@
# PoolAllocator::GetBlockSize
获取相关状态或对象
查询逻辑 block 大小
```cpp
size_t GetBlockSize() const;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
当前头文件内联实现直接返回 `m_blockSize`
**返回:** `size_t` - 返回值语义详见头文件声明
这表示的是 API 视角下的单块容量上限,也就是 [Allocate](Allocate.md) 允许的最大请求大小;它不一定等于构造时实际使用的 block 步长
**示例:**
## 返回值
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
- `size_t` - 逻辑 block 大小。
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetBlockSize(...)
(void)object;
}
```
## 注意事项
- 如果构造时传入了较大的 `alignment`,实际池内存的 block 间距可能大于这里返回的值
- [GetTotalAllocated](GetTotalAllocated.md)、[GetTotalFreed](GetTotalFreed.md) 和 [GetPeakAllocated](GetPeakAllocated.md) 也都是基于这个逻辑大小计算,而不是基于实际 stride。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Constructor](Constructor.md)

View File

@@ -1,30 +1,25 @@
# PoolAllocator::GetFreeBlockCount
获取相关状态或对象
查询当前空闲 block 数
```cpp
size_t GetFreeBlockCount() const;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
当前实现直接返回 `m_freeBlocks`
**返回:** `size_t` - 返回值语义详见头文件声明。
## 返回值
**示例:**
- `size_t` - 当前空闲 block 数。
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
## 注意事项
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetFreeBlockCount(...)。
(void)object;
}
```
- 这是一个“当前快照值”,不是历史统计。
- 如果调用方错误地传入无效指针或重复释放,`m_freeBlocks` 会被破坏,这里的结果也会随之失真。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [GetAllocationCount](GetAllocationCount.md)

View File

@@ -1,30 +1,23 @@
# PoolAllocator::GetName
获取相关状态或对象
查询分配器名称
```cpp
const char* GetName() const override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:** 无。
**返回:** `const char*` - 返回值语义详见头文件声明。
**示例:**
当前头文件内联实现固定返回字符串字面量:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetName(...)。
(void)object;
}
"PoolAllocator"
```
## 返回值
- `const char*` - 当前固定为 `"PoolAllocator"`
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)

View File

@@ -1,30 +1,31 @@
# PoolAllocator::GetPeakAllocated
获取相关状态或对象
查询峰值分配量
```cpp
size_t GetPeakAllocated() const override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:** 无。
**返回:** `size_t` - 返回值语义详见头文件声明。
**示例:**
当前头文件内联实现返回:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetPeakAllocated(...)。
(void)object;
}
m_totalBlocks * m_blockSize
```
这并不是“历史上曾经达到过的最大已用字节数”,而是整个池按逻辑 block 大小计算的总容量上界。
## 返回值
- `size_t` - 当前实现下等于总池容量上界。
## 注意事项
- 如果你把它当作调试统计里的“历史峰值”,会得到过于乐观的结果。
- 这里同样不考虑对齐放大后的真实 stride。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [GetTotalAllocated](GetTotalAllocated.md)

View File

@@ -1,30 +1,31 @@
# PoolAllocator::GetTotalAllocated
获取相关状态或对象
查询当前已用字节数
```cpp
size_t GetTotalAllocated() const override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:** 无。
**返回:** `size_t` - 返回值语义详见头文件声明。
**示例:**
当前头文件内联实现返回:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetTotalAllocated(...)。
(void)object;
}
(m_totalBlocks - m_freeBlocks) * m_blockSize
```
因此它表示的是“当前正在使用的逻辑字节数”,而不是累计分配过多少字节。
## 返回值
- `size_t` - 当前已用逻辑字节数。
## 注意事项
- 这里按 `m_blockSize` 计费,不按对齐后的实际 stride 计费。
- 如果 `m_freeBlocks` 因错误释放被破坏,这个值也会失真。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [GetTotalFreed](GetTotalFreed.md)

View File

@@ -1,30 +1,20 @@
# PoolAllocator::GetTotalBlockCount
获取相关状态或对象
查询池中的总 block 数
```cpp
size_t GetTotalBlockCount() const;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
当前头文件内联实现直接返回 `m_totalBlocks`,也就是构造时指定的 block 数量
**返回:** `size_t` - 返回值语义详见头文件声明。
## 返回值
**示例:**
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetTotalBlockCount(...)。
(void)object;
}
```
- `size_t` - 池的总 block 数。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [GetFreeBlockCount](GetFreeBlockCount.md)

View File

@@ -1,30 +1,31 @@
# PoolAllocator::GetTotalFreed
获取相关状态或对象
查询当前空闲字节数
```cpp
size_t GetTotalFreed() const override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:** 无。
**返回:** `size_t` - 返回值语义详见头文件声明。
**示例:**
当前头文件内联实现返回:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::GetTotalFreed(...)。
(void)object;
}
m_freeBlocks * m_blockSize
```
因此这个接口在 `PoolAllocator` 中表示的是“当前还空着多少逻辑字节”,不是“累计向系统释放了多少字节”。整个池在分配器存活期间始终保留在进程内存中,直到析构时才统一释放。
## 返回值
- `size_t` - 当前空闲逻辑字节数。
## 注意事项
- 这里同样不考虑对齐放大的真实 stride。
- 如果发生错误释放,`m_freeBlocks` 失真,这里的统计也会随之失真。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [GetTotalAllocated](GetTotalAllocated.md)

View File

@@ -6,38 +6,57 @@
**头文件**: `XCEngine/Memory/PoolAllocator.h`
**描述**: 定义 `XCEngine/Memory` 子目录中的 `PoolAllocator` public API
**描述**: 为固定尺寸对象提供 O(1) 弹出/归还的池分配器
## 概述
`PoolAllocator.h` `XCEngine/Memory` 子目录 下的 public header当前页面作为平行目录中的 canonical 总览,用于汇总该头文件暴露的主要声明。
`PoolAllocator` 预先申请一整块内存,然后把它切成固定尺寸的 block通过空闲链表管理这些 block。它适合
## 声明概览
- 大量尺寸相同或尺寸上界稳定的小对象
- 频繁分配和释放、但不想承担通用堆分配碎片与额外元数据开销的场景
| 声明 | 类型 | 说明 |
|------|------|------|
| `PoolAllocator` | `class` | 继承自 `IAllocator` 的公开声明。 |
## 生命周期与所有权
## 公共方法
- [Constructor](Constructor.md) 一次性申请整个池。
- [Allocate](Allocate.md) 从空闲链表弹出一个 block。
- [Free](Free.md) 把 block 放回空闲链表头部。
- [Destructor](Destructor.md) 在整个池销毁时一次性释放底层内存。
| 方法 | 描述 |
## 当前实现限制
- [Reallocate](Reallocate.md) 当前返回 `nullptr`
- `Allocate` 忽略调用时传入的 `alignment` 参数,真正使用的是构造阶段保存的对齐设置。
- 对齐逻辑当前只影响 block stride 计算,不保证底层池起始地址本身按该对齐值申请。
- 构造函数当前不校验 `blockSize > 0``poolSize > 0`,也不处理底层内存申请失败后的初始化路径。
- [Free](Free.md) 不检查指针是否真的来自当前池,也不防止重复释放。
- [Contains](Contains.md) 当前只检查“是否落在池的地址范围内”,不检查是否对齐到 block 边界,也不检查块是否仍在分配状态。
- `GetPeakAllocated` 当前返回整个池的总容量,而不是历史峰值使用量。
## 线程语义
- 当前没有锁;需要外部同步。
## 公开方法
| 方法 | 说明 |
|------|------|
| [PoolAllocator()](Constructor.md) | 构造对象。 |
| [~PoolAllocator()](Destructor.md) | 销毁对象并释放相关资源。 |
| [Allocate](Allocate.md) | 公开方法,详见头文件声明。 |
| [Free](Free.md) | 公开方法,详见头文件声明。 |
| [Reallocate](Reallocate.md) | 公开方法,详见头文件声明。 |
| [Contains](Contains.md) | 公开方法,详见头文件声明。 |
| [GetBlockSize](GetBlockSize.md) | 获取相关状态或对象。 |
| [GetFreeBlockCount](GetFreeBlockCount.md) | 获取相关状态或对象。 |
| [GetTotalBlockCount](GetTotalBlockCount.md) | 获取相关状态或对象。 |
| [GetName](GetName.md) | 获取相关状态或对象。 |
| [GetTotalAllocated](GetTotalAllocated.md) | 获取相关状态或对象。 |
| [GetTotalFreed](GetTotalFreed.md) | 获取相关状态或对象。 |
| [GetPeakAllocated](GetPeakAllocated.md) | 获取相关状态或对象。 |
| [GetAllocationCount](GetAllocationCount.md) | 获取相关状态或对象。 |
| [Constructor](Constructor.md) | 构造固定块池分配器。 |
| [Destructor](Destructor.md) | 销毁整个池。 |
| [Allocate](Allocate.md) | 分配一个 block。 |
| [Free](Free.md) | 归还一个 block。 |
| [Reallocate](Reallocate.md) | 重分配 block当前返回 `nullptr`。 |
| [Contains](Contains.md) | 判断指针是否位于池地址范围内。 |
| [GetBlockSize](GetBlockSize.md) | 查询逻辑 block 大小。 |
| [GetFreeBlockCount](GetFreeBlockCount.md) | 查询空闲 block 数。 |
| [GetTotalBlockCount](GetTotalBlockCount.md) | 查询总 block 数。 |
| [GetName](GetName.md) | 查询分配器名称。 |
| [GetTotalAllocated](GetTotalAllocated.md) | 查询当前已用字节数。 |
| [GetTotalFreed](GetTotalFreed.md) | 查询当前空闲字节数。 |
| [GetPeakAllocated](GetPeakAllocated.md) | 查询峰值分配量;当前返回总池容量。 |
| [GetAllocationCount](GetAllocationCount.md) | 查询当前已分配 block 数。 |
## 相关文档
- [当前目录](../Memory.md) - 返回 `Memory` 平行目录
- [API 总索引](../../../main.md) - 返回顶层索引
- [当前模块](../Memory.md)
- [IAllocator](../Allocator/Allocator.md)
- [Allocator Selection And Current Limits](../../../_guides/Memory/Allocator-Selection-And-Current-Limits.md)

View File

@@ -1,32 +1,29 @@
# PoolAllocator::Reallocate
公开方法,详见头文件声明
重分配一个 block
```cpp
void* Reallocate(void* ptr, size_t newSize) override;
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
- `ptr` - 参数语义详见头文件声明。
- `newSize` - 参数语义详见头文件声明。
当前实现没有真正支持可变尺寸重分配,函数体固定返回 `nullptr`,也不会读取 `ptr``newSize`
**返回:** `void*` - 返回值语义详见头文件声明。
## 参数
**示例:**
- `ptr` - 原 block 指针;当前实现忽略。
- `newSize` - 新大小;当前实现忽略。
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
## 返回值
void Example() {
XCEngine::Memory::PoolAllocator object;
// 根据上下文补齐参数后调用 PoolAllocator::Reallocate(...)。
(void)object;
}
```
- `void*` - 当前固定返回 `nullptr`
## 设计说明
这与池分配器的典型定位一致:它更适合固定尺寸对象,而不是 `realloc` 风格的可变尺寸缓冲。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Allocate](Allocate.md)