Skip to main content

malloc() and mmap()

Question Text

When does malloc() use mmap()?

Question Answers

  • When it allocates read-only memory

  • When it allocates zeroed memory

  • When it allocates chunks of memory bigger than an internal threshold
  • When the heap is full

Feedback

malloc uses both brk() and mmap(), but prefers mmap() for big chunks of memory (by default larger than 128 KB). This value can be altered using mallopt() with the param argument set to M_MMAP_THRESHOLD. These memory blocks are unlikely to be reused so they are not placed on heap to avoid memory fragmentation.