首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

为什么这一段代码存在内存泄露? 百思不得其解解决方案

2012-03-25 
为什么这一段代码存在内存泄露?? 百思不得其解.hclassConnDatabase{public:ConnDatabase(void)~ConnDatab

为什么这一段代码存在内存泄露?? 百思不得其解
.h

class   ConnDatabase
{
        public   :
                ConnDatabase(void);
                ~ConnDatabase(void);
          protected   :
                TADOQuery   *adoquer;
                TADOConnection   *adoconn;
};


ConnDatabase::ConnDatabase(void)
{
        adoconn=   new   TADOConnection(NULL);
        if   (adoconn==NULL)
        {
                ShowMessage( "内存分配失败 ");
                return;
        }

      adoconn-> ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Jet   OLEDB:Database   Password=mkx@#1981;Data   Source= "+ExtractFilePath(Application-> ExeName)+ "mkx.mdb; ";
        adoconn-> LoginPrompt   =false;
        adoconn-> Open();
        if   (adoconn-> Connected==false)   //   判断close()方法是否执行成功
        {
                ShowMessage( "对不起,连接失败 ");
                return   ;
        }

        adoquer=new   TADOQuery(NULL);
        if   (adoquer==NULL)
        {
                ShowMessage( "内存分配失败 ");
                return   ;
        }
       
        adoquer-> Connection   =adoconn;
        adoquer-> Close();

        ShowMessage( "gouzhao ");

}


ConnDatabase::~ConnDatabase(void)
{
        adoconn-> Close();
        delete   adoquer;
        delete   adoconn;
        adoquer=NULL;
        adoconn=NULL;

        ShowMessage( "xigou ");


}


void   __fastcall   TForm1::Button1Click(TObject   *Sender)
{
      ConnDatabase   ConnData;
}


老是报内存泄露   何解??

[解决办法]
http://topic.csdn.net/t/20030706/10/1995635.html

热点排行