单例模式 协程 leetcodeLCP Nodepad dedecms Hibernate SQLMAP reflection autocomplete vue绑定事件 sql server 视频教程 jquery绑定change事件 matlab四舍五入 oracle数据库版本 edate函数的使用方法 清空input文本框的值 时间戳java 重置hosts mysql教程 mysql临时表 python3网络编程 二分查找python python学习教程 java语言简介 java初级入门教程 java读取文本 linux密码忘记 opengl编程指南 ip隐藏 subprocess mounted 微信砍价软件 数独软件 renderpartial mysql中文乱码 小米开发者选项 lol游戏环境异常 祸星龙 vmlinux 钢笔工具怎么画曲线
当前位置: 首页 > 学习教程  > 编程语言

C++之new和malloc区别

2020/12/5 10:14:07 文章标签:

1、new分配内存按照数据类型进行分配,malloc分配内存按照指定的大小分配; 2、new返回的是指定对象的指针,而malloc返回的是void*,因此malloc的返回值一般都需要进行类型转化。 3、new不仅分配一段内存,而且会调用构造…

1、new分配内存按照数据类型进行分配,malloc分配内存按照指定的大小分配;

2、new返回的是指定对象的指针,而malloc返回的是void*,因此malloc的返回值一般都需要进行类型转化。

3、new不仅分配一段内存,而且会调用构造函数,malloc不会。

4、new分配的内存要用delete销毁,malloc要用free来销毁;delete销毁的时候会调用对象的析构函数,而free则不会。

5、new是一个操作符可以重载,malloc是一个库函数。

6、malloc分配的内存不够的时候,可以用realloc扩容。扩容的原理?new没用这样操作。

7、new如果分配失败了会抛出bad_malloc的异常,而malloc失败了会返回NULL。

8、申请数组时: new[]一次分配所有内存,多次调用构造函数,搭配使用delete[],delete[]多次调用析构函数,销毁数组中的每个对象。而malloc则只能sizeof(int) * n。


本文链接: http://www.dtmao.cc/news_show_450187.shtml

附件下载

上一篇:帮助文档(十二)

下一篇:QT类型转换

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?