私は人々と彼の会社のデータベースを実装するプログラムを持っています。クラス メンバーの動的配列ではなく、クラス メンバーへのポインターの動的配列を作成しました。
機能するバージョンがありますが、valgrind はデストラクタで削除の不一致を示します (delete db)
CCompany** db;
~CCompanyIndex ( void )
{
for(unsigned i=0;i<len;i++)
{
/*cout<<"dealloc:"<<db[i]<<endl;*/
delete db[i];
}
delete db;
}
CCompanyIndex ( void )
{
max=1000;
len=0;
db=new CCompany*[max];
}
追加にも使用します
CCompany* newIt=new CCompany(oName,oAddr,cName,cAddr);
だから私は以前に正しいと思う次のコードを試しました
~CCompanyIndex ( void )
{
delete [] db;
}
ただし、メソッドを追加することによって割り当てられたすべてのメモリは割り当て解除されません。