You can turn off overcommit, in which case you'll get a null return instead of OOM killing.
But also, you can still get a malloc failure without actually be running out of memory if the allocator can't find a big enough contiguous chunk of address space.
This is highly unlikely on a 64 bit system, but if you try to malloc gigabytes on a 32 bit machine you might see it.
And also, you never know when this theoretical case actually happens but it did happen to me: at one point someone may use your code on an Arduino and unexpectedly, it works! But memory allocation could fail more than you expect!
"As a C developer, I never check exit codes of child processes. We can just enforce it by ensuring child processes don't have bugs"
reply