覆盖标准库使用的内存分配方法?

Ann*_*inn 2 c++ memory-management stl

是否可以覆盖 STL 分配、管理和释放内存的方式?如果可能的话,怎么做呢?有没有一种方法可以将处理原始内存的代码保留在一个类或文件中?

我想为我的整个程序执行此操作,以便我可以跟踪内存使用情况、时间和生命周期信息。当然纯粹是出于好奇!

Gui*_*i13 5

您可以通过重新定义运算符newdelete在您的文件之一中来做到这一点。

解析符号时,链接器将覆盖您的标准。

您会在 SO 上找到很多很多答案,例如:重载 new/delete或那个:How to track memory allocations in C++ (尤其是 new/delete)

互联网上也有一些图书馆可以为你做这件事,比如Memtrack这个。SO 也有一些资源:C++ 内存泄漏自动检测库