我想知道calloc()
是否優於malloc
,然後是memset
。後者似乎是分配和初始化內存的最常見方式。使用calloc()而不是malloc()和memset()有什麼好處嗎?
A github code search變成了很多calloc
測試和實現,但在第一頁的數量沒有代碼實際使用calloc
。
有誰知道任何項目/組織使用或推薦使用calloc
和推薦它的情況?
從意見和下面的答案,這裏是一些有想法浮現至今:
calloc(n, size)
可以防止溢出這是可能與malloc(n * size)
結合的malloc和memset的給calloc一個機會來請求一個已知已被歸零的頁面。
一個缺點釋放calloc,該組合步驟可以排除周圍的malloc其他包裝。
從來不知道任何人使用它,我從來沒有使用它,或者知道它的存在。我不知道爲什麼,但它只是不覺得像C. – Dave 2013-03-18 00:51:06
請注意,'malloc()'後面跟'memset()'實際上保證比'calloc()'慢。 – 2013-03-18 00:58:50
如果您在GitHub上搜索'malloc',您還可以在找到使用之前找到實現和測試代碼。 – 2013-03-18 01:03:19