new和malloc区别

发布时间 2023-05-07 21:13:16作者: muzixuanxuanxuan

new
1.调用名为operator new的标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象
2.运行该类型的一个构造函数初始化对象
3.返回指向新分配并构造的构造函数对象的指针

malloc

在堆中申请一块内存,返回指向该内存的指针,不会对内存进行初始化

 

1.new可以在指定内存空间申请内存,malloc只能在堆空间申请

2.new是c++的操作符,malloc是c的函数

3.new返回指向对象的指针,malloc返回void*

4.new分配失败,抛出异常,malloc分配失败,返回null

5.new的空间大小由编译器计算,malloc要自己指定大小