new和malloc的区别
来源:互联网 发布:vb库存管理系统源码 编辑:程序博客网 时间:2024/04/28 17:49
1. malloc是库函数,在C++程序中,要用到malloc函数,必须包含malloc.h。malloc函数的原型是:void *malloc( size_t size ),其中,size是分配的空间大小。该函数返回一个void类型的指针,因此,在用malloc函数时,往往需要进行数据类型的强制转换:
int *pm = (int*)malloc(2);
myclass *pO1 = (myclass *)malloc(2); //myclass是一个自定义的类
new是C++的一个运算符,一般用法如下:
int *p = new int[10];
myclass *pO = new myclass;
2. 在分配空间时,malloc只是分配了指定大小的空间,并没有初始化,没有调用类的构造函数。而new不仅分配了空间,同时进行了初始化工作,调用了该对象的构造函数。
3. 由于malloc和new都是在堆上分配的空间,无法自动释放,需要调用free/delete释放空间。malloc分配的空间用free释放,而new分配的空间用delete释放。
0 0
- new和malloc的区别
- new和malloc的区别
- new和malloc的区别
- malloc和new的区别
- malloc和new的区别
- new和malloc的区别
- malloc和new的区别
- new和malloc的区别
- malloc 和new的区别
- new和malloc的区别
- new和malloc的区别
- malloc和new的区别
- new和malloc的区别
- new和malloc的区别
- malloc和new的区别
- malloc和new的区别
- new和malloc的区别
- malloc和new的区别
- dataguard之管理物理备库
- 好久没有听到你的消息
- C#连接Oracle查询数据乱码问题解决
- hdu 4779 Tower Defense (思维+组合数学)
- Windows Minifilter驱动 - 加载顺序 (2)
- new和malloc的区别
- 简单的AFNetWorking用法:加载网络图片和请求JSON数据
- 如何修改ios的导航条上面的文字颜色和大小等
- GET方式传递中文参数乱码的问题
- 想法太多是给自己找烦恼
- 保护.net中的dll文件方法(防止破解、反编译dll)
- 9616液晶
- 进程间通信之管道
- 我为什么选择go语言