3

On Linux, malloc doesn't necessarily return a null pointer if you're out of memory. You might get back a pointer and then have the OOM killer start eating processes if you're really out of memory. Is the same true for c++'s operator new or will you get the bad_alloc exception?

pythonic metaphor
  • 10,296
  • 18
  • 68
  • 110

2 Answers2

7

It's a kernel function rather than a language function - and you can control it with the vm.overcommit_memory and vm.overcommit_ratio sysctls.

They're visible in the proc filesystem at /proc/sys/vm/overcommit_memory and /proc/sys/vm/overcommit_ratio.

caf
  • 233,326
  • 40
  • 323
  • 462
4

The same is true for operator new, alas :^(

Jeremy Friesner
  • 70,199
  • 15
  • 131
  • 234