# LinearAllocator::Reallocate ```cpp void* Reallocate(void* ptr, size_t newSize) override; ``` 在缓冲区当前位置分配新内存。此方法始终在缓冲区末尾分配新内存,而不是尝试调整现有块的大小。返回的指针可能与输入的 `ptr` 不同。如果剩余空间不足,返回 `nullptr` 且原指针保持不变。 **参数:** - `ptr` - 被忽略(始终分配新内存) - `newSize` - 新请求的字节数 **返回:** 分配成功返回新内存指针,失败返回 `nullptr` **复杂度:** O(1) **示例:** ```cpp #include LinearAllocator allocator(1024); void* ptr1 = allocator.Allocate(128); // Reallocate 忽略原 ptr,在当前位置分配新内存 void* ptr2 = allocator.Reallocate(ptr1, 256); // ptr1 和 ptr2 可能相同也可能不同 // 都不会被释放,新内存始终在缓冲区末尾分配 ``` ## 相关文档 - [LinearAllocator 总览](linear-allocator.md) - 返回类总览