0- Oui en général. Je ne sais plus si il y a un moyen d'intercepter ces problèmes dans des exceptions -- en supposant que l'on puisse les traiter...Envoyé par butch
b- Oui et Non. C'est comme ça avec la famille à malloc, et s'était comme ça en C++. Maintenant, par défaut on lève une exception, std::bad_alloc si mes souvenirs sont justes.b- Avec les allocations dynamiques, on peut savoir si l'allocation s'est bien passé en testant le pointeur renvoyé,
c- mais lors de la création d'un objet sur la pile, peut-on tester si la création s'est bien passé.
d- Voir même peut-on avant la construction tester qu'il y aura assez de place sur la pile ?
c- Pas vraiment la peine. Si le programme a continué, alors cela c'est bien passé. Si on a voulu utiliser trop de mémoire sur la pile, voir a-. Si c'est juste une construction qui a avorté (parce que la classe a été ainsi conçue), alors on aura une exception à récupérer à l'endroit qui va bien.
d- De façon standard, pas à ma connaissance. Il faut voir avec chaque compilateur. D'un autre côté pour saturer une pile, il faut des programmes dont les fonctions s'appelent sans sortir, ou qui allouent de gros buffers qui n'ont rien à faire sur la pile, voire une fonction récursive qui utilise de gros buffers sur la pile.
Partager