2009-10-20 4 views
3

Sous Linux, malloc ne renvoie pas nécessairement un pointeur nul si la mémoire est insuffisante. Vous pourriez récupérer un pointeur et faire en sorte que le tueur du MOO commence à manger si vous manquez vraiment de mémoire. Est-ce la même chose pour l'opérateur C++ ou obtiendrez-vous l'exception bad_alloc?Opérateur new et bad_alloc sous linux

Répondre

4

La même chose est vraie pour l'opérateur nouveau, hélas.^(

7

Il est fonction du noyau plutôt qu'une fonction de la langue - et vous pouvez le contrôler avec les vm.overcommit_memory et vm.overcommit_ratio sysctls

Ils sont visibles dans le système de fichiers proc à /proc/sys/vm/overcommit_memory et /proc/sys/vm/overcommit_ratio

+0

Pas tout à fait le runtime C++ peut faire lorsque le système d'exploitation repose. – MSalters