标签:
一、new 是c++中的操作符,malloc是c 中的一个函数
malloc与free是C++/C语言的标准库函数(要用到malloc函数,必须包含malloc.h),new/delete是C++的运算符。
二、new不仅分配内存,而且会调用构造函数。同理,delete会调用析构函数
new可以认为是malloc加构造函数的执行;delete可以认为是free加析构函数的执行。
new出来的指针是直接带类型信息的,而malloc返回的都是void指针。
对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。
三、new能够自动分配空间大小,而malloc必须指定
这是因为new 内置了sizeof、类型转换和类型安全检查功能。对于非内部数据类型的对象而言,new 在创建动态对象的同时完成了初始化工作。
标签:
原文地址:http://www.cnblogs.com/DeafeningZhao/p/4343917.html