C++-------new 与malloc

//new开辟10个数组元素
int *array =new int[10];
//delete释放开辟的数组
delete[] array;


//使用New开辟对象空间
Test *p=new Test(10,10);   //用New可以直接调用构造函数,但用Malloc则不可以,需要调用成员函数初始化

//free不能调用对象的析构函数,所以用delete比较好,否则可能造成内存泄漏
  比如说Test t("123"),此时的123已经是新的空间,用free方式剩下的123没被释放,因没调用析构函数
  而用delete则会调用析构函数进行释放

//malloc、free是调用标准库函数
而new、delete是C++的关键字,本身具有

猜你喜欢

转载自www.cnblogs.com/god-for-speed/p/10924467.html