calloc() 與 malloc() 的差異
calloc() 與 malloc() 的差異
前陣子在 Hacker News Daily 上看到的,原文是 2016 的文章:「Why does calloc exist?」,裡面講的東西包括了 implementation dependent 的項目,所以要注意一下他的結論未必適用於所有的平台與情境。 malloc() 與 calloc() 的用法是這樣,其中 calloc() 會申請 count 個 size 的空間: void* buffer1 = malloc(size); void* buffer2 = calloc(count, size); 第一個差異是,count * size 可能會 overflow (而 integer overflow 在 C 裡面是 undefined behavior),這點除非你在乘法時有檢查,不然大多數的行為都還是會生一個值出來。 而 calloc() 則是會幫你檢查,當檢查會發生…
View On WordPress



















