構造体へのポインターの配列を実装するクラスを作成しました...この配列にレコードを追加する方法は知っていますが、それらを適切に削除する方法がわからないため、メモリリークが発生しました。必要に応じて配列のサイズが大きくなり、配列のサイズとそこにいくつのレコードがあるかがわかります。私は、ガベージ コレクターを備えた言語でのコーディングに慣れているため、これはかなり混乱します。その配列を適切に解放する方法を教えていただければ幸いです。
Plsは、私が使用できないことに注意してくださいvector
。私はそれらに限定されています:
#include <iostream>
#include <iomanip>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
私のコード:
struct DbRecord
{
string oName;
string oAddr;
string cName;
string cAddr;
};
class CCompanyIndex
{
public: CCompanyIndex(void);~CCompanyIndex(void);
bool Add(const string & oName,
const string & oAddr,
const string & cName,
const string & cAddr);
bool Del(const string & oName,
const string & oAddr);
bool Search(const string & oName,
const string & oAddr,
string & cName,
string & cAddr) const;
int size;
int position;
DbRecord * * db;
};
CCompanyIndex::CCompanyIndex(void)
{
db = new DbRecord * [1000];
size = 1000;
position = 0;
}
CCompanyIndex::~CCompanyIndex(void)
{
}
int main(int argc, char const * argv[])
{
CCompanyIndex c1;
// do something..with c1, i.e. add there some records to array
// ...
// ...
// delete it now
}