C++中内存分配与删除耗时间吗??

 我来答
风若远去何人留
推荐于2018-03-26 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
是需要消耗时间的。
内存分配时,需要向系统进行申请,系统会对剩余连续内存做查询,查找到合适的内存块后,再对该块写一个已被使用的标识位。然后再把分配到的内存地址返回。
内存删除的时候,是分配的一个反向过程,想系统申请,清除被使用标记为,系统将内存回收,返回。
这个时间非常短,短到只有几十或几百微妙,但一定是有时间消耗的。

在C++中,内存分配有两种途径,通过new/delete和通过malloc/free。
其中new/delete要比malloc/free更高效。因为new和delete是C++的运算符,而malloc/free是C++的函数。前者的调用省去了函数调用相关操作。
所以在C++编程中,要尽量使用new/delete来进行动态内存的分配/删除操作。
寒花葬935
推荐于2017-11-21 · 超过65用户采纳过TA的回答
知道答主
回答量:129
采纳率:0%
帮助的人:68.5万
展开全部
耗时很少。大量的循环和磁盘IO比较耗时。若对内存进行几千次的不断重复的开辟内存与释放,同开辟一次内存之后不释放相比,节约的时间很有限,几乎可以忽略。只是几千次的不断重复的开辟内存与释放,很容易造成内存碎片化。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ea294ff
2015-11-03 · 超过25用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:29.5万
展开全部
程序里面最耗时间的就是内存的分配,所以好的代码要尽量避免new方法,可以的话多用用用空间换时间的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c05f5f6
2015-11-11 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:62
采纳率:0%
帮助的人:46.4万
展开全部
无论是栈的创建和销毁,还是new delete都要费时间,任何语言的任何语句都费时间,只不过很快,快到没感觉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式