【发布时间】:2011-09-24 01:41:41
【问题描述】:
IMO 一个就够了,为什么calloc 需要将其拆分为两个参数?
【问题讨论】:
-
因为一些程序员以这种方式创建了它,因此它永远存在......
-
如果你不喜欢,
#define calloc(x) (calloc)(x, 1)应该可以。 -
@Chris 使用预处理器重新定义 malloc 或系列似乎是一个非常糟糕的主意(可能除了调试内存分配)。
-
因为 calloc() 需要两个参数;一个定义元素的数量,一个定义元素的大小。顺便说一句, calloc() 将所有分配的内存清除为零。为什么会出现这个问题?
-
@peachykeen - 是的。从技术上讲,它在标准中是 UB,尽管在实践中不工作会很疯狂。也就是说,我的评论并不是真正的好的建议。