是否可以重写STL分配、管理和释放内存的方式?如果可能的话,人们会怎样做呢?有没有一种方法可以将处理原始内存的代码保留在一个类或文件中?
我想对我的整个程序执行此操作,以便我可以跟踪内存使用情况、时间和生命周期信息。当然纯粹是出于好奇!
您可以通过在一个文件中重新定义运算符
new
和 delete
来实现这一点。
解析符号时,链接器将覆盖您的标准链接器。
你会在 SO 上找到很多很多答案,比如这个:重载 new/delete 或那个:如何跟踪 C++ 中的内存分配(尤其是 new/delete) .
互联网上也有一些库可以为您执行此操作,例如 Memtrack 或 this one 。 SO 还有一些相关资源:C++ 内存泄漏自动检测库 .