天唯网 关注数码科技发展
首页 /  科技数码 / 内容详情

c语言delete与free区别

科技数码 时间:2025-04-19 12:00:05

C语言的的free和c++的delete区别

首先free对应的是malloc;delete对应的是new;free用来释放malloc出来动态内存,delete用来释放new出来的动态内存空间。

应用的区别为:

1. 数组的时候int *p=(int*)malloc(10*sizeof(int)) 释放的时候 free(p)即可;这是因为编译器对malloc做了一些特殊的处理,以保证可以正确释放内存。而当int *p=new int[10]释放的时候应为delete []p,注意[]的作用说明释放的是一个数组的内存,如果delete p则只是释放的p[0],其余9个int的内存没有释放;这是因为当指明为[]的时候,编译器实际上是做了一个循环来释放这个数组的所有内存。

标签: #科技数码

郑重声明:图文由自媒体作者发布,我们尊重原作版权,但因数量庞大无法逐一核实,图片与文字所有方如有疑问可与我们联系,核实后我们将予以删除。

联系我们 关于我们 版权申明 天唯网数码 广州小漏斗信息技术有限公司 版权所有 粤ICP备20006251号网站地图 网站地图2