2009-10-20 4 views
3

В Linux malloc не обязательно возвращает нулевой указатель, если у вас нехватка памяти. Вы можете вернуть указатель, а затем убийца OOM начнет есть процессы, если вы действительно потеряли память. То же самое верно для оператора C++ new или вы получите исключение bad_alloc?Оператор new и bad_alloc on linux

ответ

4

То же самое верно и для оператора нового, увы:.^(

7

Это функция ядра, а не функция языка - и вы можете контролировать его с vm.overcommit_memory и vm.overcommit_ratio параметров управляет

Они видны в файловой системе proc на /proc/sys/vm/overcommit_memory и /proc/sys/vm/overcommit_ratio.

+0

Не так много времени выполнения C++, когда ОС лежит. – MSalters