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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
typedef void (*new_handler)();
new_handler set_new_handler(new_handler p) throw();
You use set_new_handler like this:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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