Files
XCEngine/docs/api/memory/linear-allocator/reallocate.md
ssdfasd dc850d7739 docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
  - math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
  - containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
  - core: 修复 types 链接错误
  - debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
  - memory: 修复头文件路径, malloc vs operator new, 新增方法文档
  - resources: 修复 Shader/Texture 链接错误
  - threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00

35 lines
994 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LinearAllocator::Reallocate
```cpp
void* Reallocate(void* ptr, size_t newSize) override;
```
在缓冲区当前位置分配新内存。此方法始终在缓冲区末尾分配新内存,而不是尝试调整现有块的大小。返回的指针可能与输入的 `ptr` 不同。如果剩余空间不足,返回 `nullptr` 且原指针保持不变。
**参数:**
- `ptr` - 被忽略(始终分配新内存)
- `newSize` - 新请求的字节数
**返回:** 分配成功返回新内存指针,失败返回 `nullptr`
**复杂度:** O(1)
**示例:**
```cpp
#include <XCEngine/Memory/LinearAllocator.h>
LinearAllocator allocator(1024);
void* ptr1 = allocator.Allocate(128);
// Reallocate 忽略原 ptr在当前位置分配新内存
void* ptr2 = allocator.Reallocate(ptr1, 256);
// ptr1 和 ptr2 可能相同也可能不同
// 都不会被释放,新内存始终在缓冲区末尾分配
```
## 相关文档
- [LinearAllocator 总览](linear-allocator.md) - 返回类总览