gpt4 book ai didi

c - 为什么 calloc 接受两个参数而 malloc 只接受一个参数?

转载 作者:太空狗 更新时间:2023-10-29 17:01:53 25 4
gpt4 key购买 nike

IMO 一个就够了,为什么 calloc 需要把它分成两个参数?

最佳答案

我猜这可能是历史,早于 C 语言拥有函数原型(prototype)的时代。在那些没有原型(prototype)的时代,参数基本上必须是 inttypedef size_t 可能甚至还没有被发明出来。但是 INTMAX 是您可以使用 malloc 分配的最大块,将其一分为二只会让您更加灵活,并允许您分配非常大的数组。即使在那个时候,也有一些方法可以从系统中获取默认清零的大页面,因此 calloc 的效率问题不如 malloc 的问题。

如今,有了 size_t 和手边的函数原型(prototype),这只是 C 丰富历史的日常提醒。

关于c - 为什么 calloc 接受两个参数而 malloc 只接受一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com