C++內存泄露問題


在園子里也有1個月的時間。總想寫點什么,但都不知道寫點什么好。今天做項目發現一個問題。查的很久后來才發現,寫出來共享一下。

問題是這樣子的:用C++寫的一個MES引擎,當引擎運行起來以后 不會報錯也跑起來也很正常,但內存卻一直在增長。

一般出現此問題的是new出來的沒有釋放才導致此問題的出現。可引擎中所有new出來的對象都已經釋放了。找來找去后來才發現,map<對象指針> 沒有被釋放。

總結:1、做C++無論是做大工程還是小程序都應該注意new出來的對象 記得“及時”釋放 delete 對象;

        2、關於模板對象保存指針 應該采用遍歷刪除對象指針。 或者內存將一直占有直到程序退出。

    if(!m_map.IsEmpty()){
        POSITION pos;
        CString key;
        LoadByDay *pLoadByDay;
      for( pos =m_map.GetStartPosition(); pos != NULL; )
      {
         m_map.GetNextAssoc( pos, key, (LoadByDay*&)pLoadByDay );
         delete pLoadByDay;//這里很重要
      }
      m_map.RemoveAll();//等對象都刪除的才清空 
   }


免責聲明!

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



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