Utilizzo di new_handler per impostare la funzione di errore nel caso in cui
* Utilizzo di new_handler per impostare la funzione di errore nel caso in cui
* new fallisca.
*/
#include <iostream.h>
#include <new.h>
// METODO ALTERNATIVO
// extern void (*__new_handler)();
void my_handler();
void my_handler_2();
main()
{ void (*old_handler)();
old_handler = set_new_handler(my_handler);
if (old_handler == NULL)
cout << "L'handler era quello di default" << endl;
// METODO ALTERNATIVO
// __new_handler = my_handler_2;
long size = 400000000;
cout << "Provo ad allocare " << size << " char." << endl;
char *p = new char[size];
cout << "Operazione riuscita!" << endl;
exit(0);
}
void my_handler()
{ cerr << "Errore: non e` possibile allocare la memoria richiesta." << endl;
cerr << "Programma terminato!" << endl;
exit(-1);
}
void my_handler_2()
{ cerr << "Errore: non e` possibile allocare la memoria richiesta." << endl;
cerr << "Altra versione!" << endl;
cerr << "Programma terminato!" << endl;
exit(-1);
}
Titolo dell'appunto
Semplice programmino C++ che spiega il funzionamento della set new handler e che prova ad allocare in memoria un dato.
Si utilizza la new handler per impostare la funzione di errore nel caso in cui new fallisca.