# ProxyAllocator::Free ```cpp void Free(void* ptr) override; ``` 释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前分配计数),并递减 `allocationCount`。由于 ProxyAllocator 不记录单独释放的字节数,`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(次数,非字节) // allocationCount 最终为 0 printf("Total allocated: %zu bytes, Freed count: %zu, Current count: %zu\n", stats.totalAllocated, stats.totalFreed, stats.allocationCount); ``` ## 相关文档 - [ProxyAllocator 总览](proxy-allocator.md) - 返回类总览