Skip to content

calloc 與 malloc ​

calloc(count, size) ≠ malloc(count * size) + memset(0):

  • Overflow 檢查:calloc 會檢查 count × size 有沒有 overflow;自己乘再 malloc 可能默默配到一塊很小的記憶體。
  • 不一定要 memset:如果拿到的記憶體本來就是 0(例如剛從 OS mmap 來的新 page),calloc 可以跳過清零,大塊配置時快很多。

Ref: Why does calloc exist?

頁面歷史

Just observe 👀