new/delete与malloc/free的区别
2026/6/3 3:04:47 网站建设 项目流程

背景:

malloc、free是c语言的库函数,是函数

new、delete是C++操作符,语言语法的一部分,编译器直接识别

// 操作符(语言内置) int a = 5 + 3; // + 是操作符 int b = a * 2; // * 是操作符 Base* obj = new Base; // new 是操作符 delete obj; // delete 是操作符 // 函数调用(需要函数名和括号) int c = add(5, 3); // add 是函数名 Base* obj2 = malloc(sizeof(Base)); // malloc 是函数名 free(obj2); // free 是函数名

1.new自动计算所需内存大小 ;malloc需要手动计算所需内存大小。

2.new返回对象类型的指针,delete获取对象类型的指针;malloc返回 无类型的指针void*

3.new是在free store上分配内存,malloc是在 堆 上分配内存

4.new在free store 上分配内存,malloc在堆上分配内存。

5.new会调用构造函数,new可以初始化;malloc只分配内存,不调用构造函数

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询