找到程序里面有new或malloc的地方,看看他们是不是被经常执行。如果是,想办法释放。

解决方案 »

  1.   

    程序里面有new或malloc的地方,可是不执行定时程序是占用内存不会被释放吗?用什么语句释放NEW占用的内存呢?
      

  2.   

    你要在析构函数里释放你NEW的内存
      

  3.   

    用什么语句释放NEW占用的内存呢?
    DELETE
      

  4.   

    在析构函数释放不是问题所在,析构是对象销毁时候调用的,定时器都还在跑呢,怎么可能会调用析构函数去定时器内部局部指针new的多而没有释放就会造成内存占用升高,可以考虑用静态,或者及时delete
      

  5.   

    static DWORD dwWord = new DWORD[2000000000000]
    SetTimer(1,1,null);
    OnTimer{dwWord++};
      

  6.   

    定时器有无问题?照理ONTIMER过程中的所有变量在执行完成后应不再占据内存的,怎么会出现这样的问题,我已把ONTIMER过程中的所有NEW变量都DELETE了,现象依旧,请高手再帮助分析一下!
      

  7.   

    你是怎么释放的?delete dwWord or delete[] dwWord???
      

  8.   

    看看debug 模式下退出时候 output窗口有没有提示内存泄露
      

  9.   

    LPWSTR phd_time,phd_tagname,phd_val; 
    phd_tagname=new  wchar_t[phd_tagename_len+1]; 
    phd_val=new  wchar_t[phd_val_len+1];
    phd_time=new  wchar_t[phd_time_len+1];
    delete phd_tagname,phd_val,phd_time;
    定时执行程序中只用到这些变量是NEW出来的,我已经DELETE了,其它的都是如CString a;int i这样定义的变量。
      

  10.   

    我编了一个程序,也是这个问题,打开资源管理器,看着它的资源占用率在不断的增加,过一段时间后就死机了,为何?
    我查了好久,差不多一下午,只因少了一句话
    ReleaseDC(m_hWnd,hdc);
    晕吧,你也可以试试看是不是某一个东西