是否可以覆盖 STL 分配、管理和释放内存的方式?如果可能的话,人们会怎样做呢?有没有一种方法可以将处理原始内存的代码保留在一个类或文件中?
我想对我的整个程序执行此操作,以便我可以跟踪内存使用情况、时间和生命周期信息。当然纯粹是出于好奇!
您可以通过重新定义运算符来做到这一点new
and delete
在你的一个文件中。
解析符号时,链接器将覆盖您的标准链接器。
你会在 SO 上找到很多很多答案,比如:重载新建/删除 https://stackoverflow.com/questions/583003/overloading-new-delete或者那个:如何跟踪 C++ 中的内存分配(尤其是新建/删除) https://stackoverflow.com/questions/438515/how-to-track-memory-allocations-in-c-especially-new-delete .
互联网上有一些图书馆也可以为您做到这一点,例如Memtrack http://www.almostinfinite.com/memtrack.html or this one http://wyw.dcweb.cn/leakage.htm。 SO 还有一些这方面的资源:C++内存泄漏自动检测库 https://stackoverflow.com/questions/5530750/c-memory-leak-auto-detection-library .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)