Я пытаюсь удалить уже удаленный объект и получаю сигнал SIGABRT.
Я знаю, что этот сигнал прерывает мою программу, но я хочу перехватить этот сигнал в обработчике сигнала и отобразить сообщение об удалении уже удаленного объекта ...
Вот код, который я пробовал, но, похоже, он не работает.
Пожалуйста, помогите мне понять, что в этом плохого?
using namespace std;
class myclass
{
public:
myclass() { cout <<"myclass constructed\n"; }
~myclass() { cout <<"myclass destroyed\n"; }
};
void func(int);
int main (void)
{
signal(SIGABRT,func);
myclass * pt;
pt = new myclass[3];
delete[] pt;
delete[] pt;
return 0;
}
void func(int)
{
signal(SIGABRT,func);
cout << "trying to delete unallocated memory, exiting....\n";
exit(0);
}