相同点: malloc/free和new/delete都用来进行内存分配和释放。 不同点: 1、malloc/free是C++/C语言的标准库函数,而new/delete是C++的运算符。 2、采用malloc申请内存以字节为单位,且返回的内存类型为void *,因此赋予具体的类型时需要进行强制转换;而new则可根据需要的类型进行分配,并返回匹配类型的指针。 3、对于非内部数据类型的对象,采用maloc/free分配内存不会自动执行对象的构造和析构函数;而new/delete在分配和释放内存的时候同时执行对象的构造和析构函数以初始化内存。 4、new/delete可被重载来实现符合特定需要的内存分配,用户无需关心具体细节;而malloc/free只是库函数,分配和释放内存都需要自己维护。
百度面试题——malloc/free和new/delete的异同
最新推荐文章于 2023-05-15 20:34:34 发布