技术交流QQ群:1027579432,欢迎你的加入!
区别如下:
- new会分配内存,并调用类的构造函数创建对象
- malloc只是分配内存,不调用类的构造函数创建对象
实例如下:
#include <iostream>
#include "cstdio"
#include "cstdlib"
using namespace std;
class A
{
public:
A()
{
printf("A");
}
};
class B{
public:
private:
};
int main()
{
cout << "sizeof(B) = " <<sizeof(B) << endl;
A *p1 = new A;
delete p1; // 虽然不会崩溃,但是会发生内存泄漏,不是好的编程习惯,所以加上这句
A *p2 = (A *)malloc(sizeof(A));
free (p2); // 虽然不会崩溃,但是会发生内存泄漏,不是好的编程习惯,所以加上这句
return 0;
}