new和delete、malloc和free之间的异同点以及用法实例
来源:互联网 发布:考研数学文都网络课程 编辑:程序博客网 时间:2024/06/09 22:27
/*malloc和free new和delete 两大类之间的<strong><span style="font-size:18px;">根本区别</span></strong>1.malloc和free是属于c语言范畴的,而new和delete是属于c++范畴的。2.malloc不能给对象进行初始化,而new可以给对象进行初始化。3.new和delete会自动调用类的构造函数和析构函数,而malloc和free不会调用。4.malloc和delete、new和free 可以混搭,但不建议这样用,因为会造成代码不方便管理,并且会造成对象无法调用析构函数而出错,比如使用new 和 free,如果类里开辟了一段新空间,如果无法调用析构函数,那么这段空间就会浪费点。*/#include "stdafx.h"#include <iostream>using namespace std;class Test{public:Test(int _a){a = _a;cout << "构造函数被执行" << endl;}~Test(){cout << "析构函数被执行" << endl;}private:int a;};int main(){//malloc 和 free 以及new 和 delete 用法说明//1.基础数据类型的动态建立和释放int *p = (int *)malloc(sizeof(int));*p = 1;free(p);int *p = new int;*p = 2;delete p;//2.数组的动态建立和释放int *p = (int *)malloc(10*sizeof(int));// 相当于int p[10]p[0] = 10;cout << p[0] << endl;free(p);int *p2 = new int[10];p2[0] = 11;delete[]p2;//2.类的对象的动态建立和释放Test *t1 = (Test *)malloc(sizeof(Test));free(t1);Test *t2 = new Test(12);//初始化delete t2;//结论:可发现 new 和 delete 会调用构造函数和析构函数 而malloc 和 free 不会调用!return 0;}
0 0
- new和delete、malloc和free之间的异同点以及用法实例
- malloc/free new/delete 的异同点
- new/delete和malloc/free异同
- malloc/free与new/delete异同点
- new和malloc以及delete和free的区别
- new,delete和malloc,free之间的区别 (转)
- malloc-free和new-delete之间的区别
- new/delete与malloc/free之间的联系和区别
- malloc/free和new/delete用法浅析
- new delete和malloc free的用法与区别
- new/delete与malloc/free的异同
- malloc/free 和 new/delete的区别
- malloc/free和new/delete的区别
- malloc/free 和 new /delete 的区别
- malloc/free和new/delete的区别
- malloc/free和new/delete的区别
- malloc/free 和 new /delete 的区别
- new/delete和malloc/free的区别
- POJ 2352 HDU1541 Stars(树状数组)
- 2015年iOS面试题整理
- 完整的微信登陆 接收消息流程
- Experimental Educational Round: VolBIT Formulas Blitz(A)数学
- 推荐算法综述
- new和delete、malloc和free之间的异同点以及用法实例
- 11-题目1431:Sort
- PopWindow实现二级联动菜单
- 自定义用户注册地区键盘(封装)3
- pwm实验纯文字总结
- scikit安装
- poj 2442
- Experimental Educational Round: VolBIT Formulas Blitz(B)快速幂
- 1006. Sign In and Sign Out (25)