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:
You use set_new_handler 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();
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.
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]; ... }
Le compilateur accepte parfaitement ce qui est écrit. Pourriez vous me donner un exemple de code qui fasse appel à la fonction noMoreMemory.
merci
Partager