Free my object
I have this object:
class ProtocolTPC
{
private:
unsigned char start[3];
unsigned char status1;
unsigned char status2;
unsigned char status3;
unsigned char psize;
unsigned char pnum[2];
unsigned char** data;
unsigned char crc[2];
public:
ProtocolTCP( bool is_out )
{
start[0] = 'H';
start[1] = 'I';
start[2] = 'O';
status1 = 0;
status2 = 0;
status3 = 0;
psize = 1;
this->setPacketNumber( 1 );
data = new unsigned char*[1];
unsigned char* temp = new unsigned char;
*temp = 'A';
data[0] = temp;
this->updateCRC();
this->out = is_our;
}
~ProtocolTCP()
{
if( packet_number > 0 )
{
for( int i=0; i< packet_number; i++ )
{
delete this->data[i];
}
delete[] this->data;
}
}
};
And I'm creating and object this way in the OnInitDialog of my app:
out_TCP = new ProtocolTCP( true );
I placed a WM_ON_DESTROY in my app and this in the hanlder message:
void CUart3Dlg::OnClose()
{
delete out_TCP;
CDialog::OnClose();
}
VC debug says I'm having a memory leak of 3 vars and I think these are
the fixed arrays I have in my object.
So I know an array is a pointer to the first element, I think i could
delete it for free memory, but this gives me an assert error.
I'm deleting correctly my object?