栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++内存管理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++内存管理

1.new/delete和malloc/free之间的关系?

相同点:都可以用于动态申请内存和释放内存;

不同点:
1.操作对象不同;
	malloc/free是C++/C语言的标准库函数,new/delete是C++的运算符。
	C++是面向对象的语言,对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限范
围之内,不能把执行构造函数和析构函数的任务强加给malloc/free。

2.用法上也有所不同:
	a.用malloc申请一块长度为length的整数类型的内存,程序如下:
int *p = (int*)malloc(sizeof(int)* length);我们应该把注意力集中在两个要素上:“类型转换”和sizeof。
	Ⅰ.malloc函数的返回值类型是void*,所以在调用malloc时要显示地进行类型转换,将void*转换成所需要的指针类型;
	Ⅱ.malloc函数本身并不识别申请的内存是什么类型,它只关心内存的总字节数。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号