| ▲ | sidewndr46 3 days ago | |||||||
It's been a while but while I agree the man page says that, my limited understanding was the typical libc on linux won't really return NULL under any sane scenario. Even when the memory can't be backed | ||||||||
| ▲ | LordGrey 3 days ago | parent | next [-] | |||||||
I think you're right, but "typical" is the key word. Embedded systems, systems where overcommit is disabled, bumping into low ulimit -v settings, etc can all trigger an immediate failure with malloc(). Those are edge cases, to be sure, but some of them could be applied to a typical Linux system and me, as a coder, won't be aware of it. As an aside: To me, checking malloc() for NULL is easier than checking a pointer returned by malloc on first use. That's what you're supposed to do in the presence of overcommit. | ||||||||
| ▲ | nextaccountic 2 days ago | parent | prev | next [-] | |||||||
Even with overcommit enabled, malloc may fail if there is no contiguous address space available. Not a problem in 64 bits but may occasionally happen in 32 bits | ||||||||
| ▲ | Bjartr 2 days ago | parent | prev [-] | |||||||
But why would you want to violate the docs on something as fundamental as malloc? Why risk relying on implementation specific quirks in the first place? | ||||||||
| ||||||||