2009-10-20 101 views
3

在Linux上,如果內存不足,malloc不一定會返回空指針。如果你真的內存不足,你可能會得到一個指針,然後讓OOM殺手開始進食。對於C++的操作符new也是如此,或者你會得到bad_alloc異常嗎?linux上運算符new和bad_alloc

回答

4

同樣是真實的運營商新的,唉。^(

7

這是一個內核函數,而不是一個語言功能 - 你可以用vm.overcommit_memoryvm.overcommit_ratio的sysctl控制它

他們是可見在proc文件系統中,在/proc/sys/vm/overcommit_memory/proc/sys/vm/overcommit_ratio之間。

+0

當操作系統在說謊時,C++運行時並不是很多。 – MSalters