IMO 一个就够了,为什么 calloc
需要把它分成两个参数?
最佳答案
我猜这可能是历史,早于 C 语言拥有函数原型(prototype)的时代。在那些没有原型(prototype)的时代,参数基本上必须是 int
,typedef
size_t
可能甚至还没有被发明出来。但是 INTMAX
是您可以使用 malloc
分配的最大块,将其一分为二只会让您更加灵活,并允许您分配非常大的数组。即使在那个时候,也有一些方法可以从系统中获取默认清零的大页面,因此 calloc
的效率问题不如 malloc
的问题。
如今,有了 size_t
和手边的函数原型(prototype),这只是 C 丰富历史的日常提醒。
关于c - 为什么 calloc 接受两个参数而 malloc 只接受一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536413/