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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM