读书人

为什么这一段代码存在内存泄露? 百思不

发布时间: 2012-03-25 20:55:17 作者: rapoo

为什么这一段代码存在内存泄露?? 百思不得其解
.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

读书人网 >C++ Builder

热点推荐