# ProxyAllocator::Free ```cpp void Free(void* ptr) override; ``` 释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加释放字节数),并递减 `allocationCount`。 **参数:** - `ptr` - 指向要释放的内存块 **返回:** 无 **复杂度:** O(1)(底层释放 + 统计更新) **示例:** ```cpp #include #include IAllocator* sysAlloc = MemoryManager::Get().GetSystemAllocator(); ProxyAllocator proxy(sysAlloc, "TrackedAlloc"); void* p1 = proxy.Allocate(512); void* p2 = proxy.Allocate(256); proxy.Free(p1); proxy.Free(p2); const auto& stats = proxy.GetStats(); // totalFreed 累加了释放的字节数 // allocationCount 最终为 0 printf("Total allocated: %zu bytes, Freed: %zu bytes, Current count: %zu\n", stats.totalAllocated, stats.totalFreed, stats.allocationCount); ``` ## 相关文档 - [ProxyAllocator 总览](proxy-allocator.md) - 返回类总览