既然malloc和calloc都是分配内存,为什么还要区分这两种方式来分配呢?

calloc可以“犁地”而malloc则只获得那么基本上用calloc可以无视malloc反而方式了吧?又安全又方便...这两个方式都还并存,那么存在就是合理,是不是有一... calloc可以“犁地”
而malloc则只获得
那么基本上用calloc可以无视malloc反而方式了吧? 又安全又方便...
这两个方式都还并存,那么存在就是合理,是不是有一些别的方面的区别的?
展开
 我来答
lihn1987
推荐于2017-11-24 · TA获得超过603个赞
知道答主
回答量:40
采纳率:0%
帮助的人:64.9万
展开全部
呵呵,其实区别就是
是否对申请的区域进行初始化而已
但是我想你也知道我们写程序的时候多用malloc而很少用calloc,和解?
因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的
calloc相当于
p = malloc();
memset(p, 0,size);
多了对内存的写零操作,而写零这个操作我们有时候需要,而大部分时间不需要
所以就有两个函数并存的关系了
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
lostinternet
2011-02-14 · TA获得超过316个赞
知道答主
回答量:203
采纳率:0%
帮助的人:287万
展开全部
主要的不同是malloc不初始化分配的内存,calloc初始化已分配的内存为0。
次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。
calloc等于malloc后在memset很可能calloc内部就是一个malloc再来一个memset清0。
所以malloc比calloc更高效.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
缈涚繘鋿
2018-04-05 · TA获得超过1.4万个赞
知道小有建树答主
回答量:80
采纳率:100%
帮助的人:2.1万
展开全部

malloc与calloc没有本质区别,malloc之后的未初始化内存可以使用memset进行初始化。




  1. 主要的不同是malloc不初始化分配的内存,calloc初始化已分配的内存为0。

  2. 次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。

  3. calloc等于malloc后在memset很可能calloc内部就是一个malloc再来一个memset清0。

  4. 所以malloc比calloc更高效。

  5. 分配内存空间函数malloc 调用形式: (类型说明符*) malloc (size) 。

  6. 分配内存空间函数 calloc calloc 也用于分配内存空间。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式