Remarque sur set_new_handler.
Bonjour
J'essaye de mettre en pratique une méthode donnée dans le livre :"Effective C++" de scott meyers. Il s'agit de gérer les exceptions de mémoire ( plus précisément l'item 7 dans la version que je lis). Il est écrit:
To specify the out-of-memory-handling function, clients call set_new_handler, which is specified in the header <new> more or less like this:
Code:
1 2
| typedef void (*new_handler)();
new_handler set_new_handler(new_handler p) throw(); |
You use set_new_handler like this:
Code:
1 2 3 4 5 6 7 8 9 10 11
| void noMoreMemory()
{// function to call if operator new can't allocate enough memory
cerr << "Unable to satisfy request for memory\n";
abort();
}
int main()
{
set_new_handler(noMoreMemory);
int *pBigDataArray = new int[100000000];
...
} |
C'est ce que j'ai fait, mais je n'arrive pas a faire planter le programme pour qu'il fasse appel à la fonction noMoreMemory.
Le compilateur accepte parfaitement ce qui est écrit. Pourriez vous me donner un exemple de code qui fasse appel à la fonction noMoreMemory.
merci