How to delete pointers held inside a vector
Hi,
I have a class named MC.
Header contains the following:
struct tCDV
{
int intC
long lngR;
bool blnE;
CString strC;
};
tCDV* p_cDV;
const int BUFF_SIZE;
std::vector<tCDV*> m_cDV;
Unit contains the following:
MC::MC():
BUFF_SIZE(32)
{
}
MC::Test()
{
p_cDV = new tCDV[BUFF_SIZE];
p_cDV->intC = cc; //cc initialised elsewhere in program
p_cDV->lngR = cr; //cr initialised elsewhere in program
p_cDV->blnE = file.read_bool(); // file.read_bool() initialised elsewhere
in program
p_cDV->strC = file.read_string(); // file.read_string() initialised
elsewhere in program
m_cDV.push_back(p_cDV);
}
All the above works fine. My problem is that I receive memory leaks on
program exit and the debugger points to:
p_cDV = new tCDV[BUFF_SIZE];
I attempted to iterate through the vector: m_cDV (via the destructor of
class MC), deleting the pointers p_cDV but to no avail. So, I scrapped the
iteration code.
Please can someone assist me in resolving this problem.
Thanks.
Colin