#include <iostream>
struct AAA {
~AAA() {
printf("delete AAA \n");
if (data)
{
delete[]data;
}
data = NULL;
len = 0;
}
char* data = NULL;
int len = 0;
};
int main()
{
std::cout << "Hello World!\n";
AAA* A1 = new AAA();
A1->len++;
AAA* A2 = A1;
AAA* A3 = A1;
A1->data = new char[100];
A1->len = 100;
memset(A1->data, 0xFF, 100);
delete[] A2->data;
printf("delete data []\n");
A2->data = NULL;
A2->len = 0;
if (A2)
{
delete A2;
printf("delete A2\n");
}
A2 = NULL;
printf("--------------\n");
if (A3)
{
if (A3->data != NULL)
{
delete[] A3->data;
printf("delete A3\n");
}
A3->data = NULL;
A3->len = 0;
delete A3;
}
A3 = NULL;
return 0;