C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用calloc()而不是malloc()和memset()有什么好处吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_607_0@@H_502_1@我想知道calloc()是否比malloc更接近memset.后者似乎是分配和初始化内存的最常用方法.

一个github code search提供了许多calloc测试和实现,但是在第一个页面中没有代码实际上使用calloc.

有谁知道使用或推荐使用calloc的任何项目/组织以及推荐它的情况?

从下面的评论和答案中,有一些到目前为止已经出现的想法:

> calloc(n,sizE)可以防止malloc(n * sizE)可能的溢出
>组合malloc和memset使calloc有机会请求已知已被归零的页面.
> calloc的缺点是组合的步骤可能会阻止malloc周围的其他包装.

解决方法

那么,我使用calloc在相当多的C代码,所以我猜这是一个答案.我认为稍微不寻常的调用方法(元素的数量和元素的大小)可能会抛出人.然而,另一个原因,您可能看不到您期望的那么多的电话是,许多较大的项目使用围绕malloc,calloc和朋友的包装器,在内存分配失败时进行错误处理(通常终止程序).所以实际的代码使用Xcalloc.

使用calloc over malloc plus memset的一个原因是calloc可能更有效率.如果C库已经知道一个页面被置零(也许它只是从操作系统获得了新的零存储器),那么它不必明确地将其清零.

大佬总结

以上是大佬教程为你收集整理的使用calloc()而不是malloc()和memset()有什么好处吗?全部内容,希望文章能够帮你解决使用calloc()而不是malloc()和memset()有什么好处吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。