Ray*_*ger 44 c malloc libc calloc c-standard-library
一名学生问了这个问题,我不确定.
猜测包括:"计数","清算","分块","完整",......
标准库文档没有说明它代表什么,并且没有类似命名的函数来指示模式.有没有人知道实际的词源,也许有一个权威的参考来支持它?
The*_*kis 53
根据Linux系统编程(Robert Love)一书的摘录,没有关于词源的官方消息来源calloc.
一些看似合理的候选人似乎是:
calloc需要一个单独的计数参数.清除,因为它确保已清除返回的内存块.
C,如C语言.
我做了一些研究,并在"UNIX @ TIME-SHARING SYSTEM:UNIX PROGRAMMER'S MANUAL .Seventh Edition,Volume 2","PROGRAMMING"一章(我的斜体)中找到了以下内容:
Run Code Online (Sandbox Code Playgroud)char *malloc(num);分配
num字节.返回的指针足够对齐,可用于任何目的.NULL如果没有可用空间,则返回Run Code Online (Sandbox Code Playgroud)char *calloc(num, size);为
num每个size大小的项目分配空间.保证空间设置为0并且指针足够对齐以便可用于任何目的.NULL如果没有可用空间,则返回Run Code Online (Sandbox Code Playgroud)cfree(ptr) char *ptr;空间返回到使用的池
calloc.如果未从中获取指针,则可以预期失序calloc.
最后一句话是一个明确的证据,calloc()肯定(意味着?)与此仅仅通过清除记忆更加不同malloc().
有趣的是,没有任何参考free()这几百页的任何一个...... :-)
从上述两个事实得出结论,我强烈反对这样一种理论,即领先的"c" calloc()代表"明确".