생성과 소멸은 다 똑같은 맥락일텐데요.
따로 소멸하는 함수를 만들지 않았다면 그냥 받았던 포인터를 delete 해주면 됩니다.
제가 모르는 더 고차원적인 문제가 있는지는 모르겠습니다만...
아래 질문의 연장이라고 생각하고 적는다면,
//생성
int Count=10;
TADOconnection **ADOconnectionArray = new TADOconnection*[Count];
for (int i = 0; i < Count; i++) {
ADOconnectionArray[i] = InstConnection(str);
}
//소멸
for (int i = 0; i < Count; i++) {
delete ADOconnectionArray[i];
}
delete[] ADOconnectionArray;
만나바 님이 쓰신 글 :
: 현제 개발중에서 TADOconnection를 동적생성하여 여러개를 만들었습니다.
: 메모리관리를 위해 다쓴 컨넥션은 객체를 소멸시키고 싶은데 도저히 생성된 객체를 찾을 방법을 모르겠습니다.
: 객체를 생성할때 다음과 같은 코드로 생성하였습니다.
:
: DAO컨넥션을 생성해주는 메소드인데 for문에서 아래 메소드를 호출합니다.
: 다쓰고 나서 각각의 메모리 해제를 어떻게 해야할까요?
: TADOConnection * __fastcall TMainForm::InstConnection(String InstId)
: {
: String ip,port,login,pwd;
: TADOConnection *Conncetion = new TADOConnection(this);
:
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:
: ip = InstTree_Query->FieldByName("IP")->Text;
: port = InstTree_Query->FieldByName("PORT")->Text;
: login = InstTree_Query->FieldByName("LOGIN")->Text;
: pwd = InstTree_Query->FieldByName("PWD")->Text;
:
: WideString ConString = "Provider=SQLOLEDB.1;";
: ConString = ConString + "Persist Security Info=False;";
: ConString = ConString + "Data Source=" + ip + "," + port +";";
: ConString = ConString + "User ID=" + login + ";";
: ConString = ConString + "Password=" + pwd + ";";
:
: Conncetion->LoginPrompt=False;
: Conncetion->ConnectionString = ConString;
:
: Conncetion->Open();
: return Conncetion;
: }