使用calloc()而不是malloc()和memset()有什么好处吗?
发布时间:2020-12-16 03:18:14 所属栏目:百科 来源:网络整理
导读:我想知道calloc()是否比malloc更接近memset.后者似乎是分配和初始化内存的最常用方法. 一个github code search提供了许多calloc测试和实现,但是在第一个页面中没有代码实际上使用calloc. 有谁知道使用或推荐使用calloc的任何项目/组织以及推荐它的情况? 从
我想知道calloc()是否比malloc更接近memset.后者似乎是分配和初始化内存的最常用方法.
一个github code search提供了许多calloc测试和实现,但是在第一个页面中没有代码实际上使用calloc. 有谁知道使用或推荐使用calloc的任何项目/组织以及推荐它的情况? 从下面的评论和答案中,有一些到目前为止已经出现的想法: > calloc(n,size)可以防止malloc(n * size)可能的溢出 解决方法
那么,我使用calloc在相当多的C代码,所以我猜这是一个答案.我认为稍微不寻常的调用方法(元素的数量和元素的大小)可能会抛出人.然而,另一个原因,您可能看不到您期望的那么多的电话是,许多较大的项目使用围绕malloc,calloc和朋友的包装器,在内存分配失败时进行错误处理(通常终止程序).所以实际的代码使用xcalloc.
使用calloc over malloc plus memset的一个原因是calloc可能更有效率.如果C库已经知道一个页面被置零(也许它只是从操作系统获得了新的零存储器),那么它不必明确地将其清零. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |