lz怎么知道内存泄漏了,就这段程序而言,不应该有内存泄漏Dlg::OnInitDialog()
{
  ......
  Test** pGroup = new Test*[2];
  MyTest* pNew1 = new MyTest;
  pNew1->SetText( "123456" );
  pGroup[0] = pNew1;
  MyTest* pNew2 = new MyTest;
  pNew2->SetText( "abcdef" );
  pGroup[0] = pNew2;
  delete pGroup[0];  
  delete pGroup[1]; 
  delete [] pGroup;
  //内存泄漏 ?凭什么说内存泄漏?
}

解决方案 »

  1.   


    lz怎么知道内存泄漏了,就这段程序而言,不应该有内存泄漏Dlg::OnInitDialog()
    {
      ......
      Test** pGroup = new Test*[2];
      MyTest* pNew1 = new MyTest;
      pNew1->SetText( "123456" );
      pGroup[0] = pNew1;
      MyTest* pNew2 = new MyTest;
      pNew2->SetText( "abcdef" );
      pGroup[0] = pNew2;
      delete pGroup[0];  
      delete pGroup[1]; 
      delete [] pGroup;
      //内存泄漏 ?凭什么说内存泄漏?
    }
    亲测
      

  2.   

    pGroup[0] = pNew1;
      MyTest* pNew2 = new MyTest;
      pNew2->SetText( "abcdef" );
      pGroup[0] = pNew2;//难道我看错了,这里运行后,你'怎么通过pgroup来删
      delete pGroup[0];  
      

  3.   

    手机打字太费劲,上边少pnew1
      

  4.   

     Test** pGroup = new Test*[2];
      MyTest* pNew1 = new MyTest;
      pNew1->SetText( "123456" );
      pGroup[0] = pNew1;
      MyTest* pNew2 = new MyTest;
      pNew2->SetText( "abcdef" );
      pGroup[0] = pNew2;
    pGroup[1] = pNew2;
    // pGroup[0] = pNew1 lost !
      delete pGroup[0];  
      delete pGroup[1]; 
      delete [] pGroup;
      

  5.   

    应该是delete父类的时候,按父类释放的内存,但是派生类里面添加的成员就释放不到了