/* FILE: newTest.cpp last change: 12-Mar-2001 * Utilizzo di new_handler per impostare la funzione di errore nel caso in cui * new fallisca. */ #include #include // 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); }