malloc和new的区别
2019-03-05 本文已影响0人
yutz
C语言中的malloc/free和C++中的new/delete的区别和联系
相同点:
它们都是对内存进行管理
区别:
区别1:类型
malloc/free是函数,而new/delete是关键字、操作符
区别2:作用
malloc/free只是简单的进行内存的申请和释放;new/delete除了进行内存申请和释放,还会调用对象的构造函数和析构函数进行空间的初始化和清理
区别3:参数与返回值
malloc/free需要手动计算申请内存的空间大小,而且返回值是void*,需要自己转换成所需要的类型;
new/delete可以自己计算类型的大小,返回为对应的类型指针