C++内存泄露及常见情况总结

1. 理解内存泄漏

程序中通常包含着静态内存和栈内存。静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量(全局变量)。栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁。对于栈对象,仅在定义的程序块运行时才存在,程序退出,栈对象也随即销毁;static对象和全局对象则是在程序结束时销毁。除了静态内存和栈内存,程序还拥有一块内存池,这部分也就是称为堆。在使用堆空间是就需要使用动态内存分配。

内存泄漏:是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

2. 内存泄漏常见情况

参考1: https://blog.csdn.net/invisible_sky/article/details/78205461

3. 使用性能监视器进行内存泄露的确认

参考: https://blog.csdn.net/invisible_sky/article/details/78205576

4. 使用vector,内存泄漏的释放

注意:size()   capacity()  swap()的 使用

参考:https://www.cnblogs.com/zhuzhenwei918/p/9082455.html

         https://blog.csdn.net/chen134225/article/details/82764933

原文链接: https://www.cnblogs.com/zhaopengpeng/p/13273171.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++内存泄露及常见情况总结

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/200141

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午8:20
下一篇 2023年2月12日 下午8:21

相关推荐