
既然malloc和calloc都是分配内存,为什么还要区分这两种方式来分配呢?
calloc可以“犁地”而malloc则只获得那么基本上用calloc可以无视malloc反而方式了吧?又安全又方便...这两个方式都还并存,那么存在就是合理,是不是有一...
calloc可以“犁地”
而malloc则只获得
那么基本上用calloc可以无视malloc反而方式了吧? 又安全又方便...
这两个方式都还并存,那么存在就是合理,是不是有一些别的方面的区别的? 展开
而malloc则只获得
那么基本上用calloc可以无视malloc反而方式了吧? 又安全又方便...
这两个方式都还并存,那么存在就是合理,是不是有一些别的方面的区别的? 展开
3个回答
展开全部
呵呵,其实区别就是
是否对申请的区域进行初始化而已
但是我想你也知道我们写程序的时候多用malloc而很少用calloc,和解?
因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的
calloc相当于
p = malloc();
memset(p, 0,size);
多了对内存的写零操作,而写零这个操作我们有时候需要,而大部分时间不需要
所以就有两个函数并存的关系了
是否对申请的区域进行初始化而已
但是我想你也知道我们写程序的时候多用malloc而很少用calloc,和解?
因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的
calloc相当于
p = malloc();
memset(p, 0,size);
多了对内存的写零操作,而写零这个操作我们有时候需要,而大部分时间不需要
所以就有两个函数并存的关系了

2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
展开全部
主要的不同是malloc不初始化分配的内存,calloc初始化已分配的内存为0。
次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。
calloc等于malloc后在memset很可能calloc内部就是一个malloc再来一个memset清0。
所以malloc比calloc更高效.
次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。
calloc等于malloc后在memset很可能calloc内部就是一个malloc再来一个memset清0。
所以malloc比calloc更高效.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
malloc与calloc没有本质区别,malloc之后的未初始化内存可以使用memset进行初始化。
主要的不同是malloc不初始化分配的内存,calloc初始化已分配的内存为0。
次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。
calloc等于malloc后在memset很可能calloc内部就是一个malloc再来一个memset清0。
所以malloc比calloc更高效。
分配内存空间函数malloc 调用形式: (类型说明符*) malloc (size) 。
分配内存空间函数 calloc calloc 也用于分配内存空间。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |