calloc
malloc(16) gives you 16 bytes of garbage. calloc(4, 4) gives you 16 bytes of zeros. Same size, different starting state.
malloc(16) calloc(4, 4)
┌─────────────┐ ┌─────────────┐
│ ???garbage? │ │ 0 0 0 0 0 … │
└─────────────┘ └─────────────┘
Useful for pointer arrays where you want every slot to start as NULL, or large buffers you’d otherwise have to memset yourself.