The manual page for calloc and friends spends lots of time blathering on about how great jemalloc is and very little time actually documenting what calloc does. For example, it does not actually say what the return value of calloc might be if given arguments of zero. The old manual pages for calloc and malloc on FreeBSD were quite good, yet they have been replaced with the Jason Evans advertising in the guise of a manual page. Please either make Jason Evans at least document what calloc does or replace the current jemalloc drivel with the proper documentation that used to exist.
jemalloc has been standard in FreeBSD for like, more than a decade? This is not new. http://rapid-shield.com/releases/7.0R/relnotes.html It's not quite a canonical manual page but it's not as poor as you make it out: The calloc() function allocates space for number objects, each size bytes in length. The result is identical to calling malloc() with an argument of number * size, with the exception that the allocated memory is explicitly initialized to zero bytes. Ok, so it does what malloc does for zero byte requests: The malloc() function allocates size bytes of uninitialized memory. The allocated space is suitably aligned (after possible pointer coercion) for storage of any type of object. Ok, so you can store any 0-byte object you want at the return value of malloc(0).