new/delete和malloc/free的区别?
(1).malloc和free是函数,new和delete是操作符。
(2).malloc申请的空间不会初始化,new可以初始化。
(3).malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间类型即可。
(4).malloc的返回值是void* 因此在使用时必须进行强转,new不需要(因为new的后面是类型)。
(5). malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需要捕获异常。
(6).申请自定义类型对象是,malloc/free只会开辟空间,不会调用构造函数和析构函数,new会,所以delete在释放资源时会调用析构函数进行资源释放。