我建立了个vc工程,
添加了变量CMemoryState m_MOld,m_MNew,m_MDif;在OnCreate中添加了代码
m_MOld.Checkpoint();在OnDraw中添加代码:
int * p = new int[2];
delete [] p;
m_MNew.Checkpoint();
m_MDif.Difference(m_MOld,m_MNew);
m_MDif.DumpStatistics();
从第二次最大最小化窗体后,
       发现在output窗体中Total allocations总是比前次多8个字节,
  难道没有delete掉,有内存泄漏?

解决方案 »

  1.   

    是不是应该先释放刚刚分配的内存,然后再delete,不然刚"new int[2]"的内存就丢了.
      

  2.   

    我已经知道答案了,应该看 Normal Blocks.
      

  3.   

    你的m_MOld.Checkpoint();不要入在OnCreate中都放在OnDraw中
    你的分配一定释放了,你象这样写看看
    在OnDraw中添加代码:
    int *p;
    m_MOld.Checkpoint();
    p = new int[2];
    delete [] p;
    m_MNew.Checkpoint();
    m_MDif.Difference(m_MOld,m_MNew);
    m_MDif.DumpStatistics();