1. 主页 > 科技 >

malloc/free是C/C标准库函数,new/de

malloc/free是C/C标准库函数,new/de

malloc/free 是 C/C 标准库函数,new/delete 是 C++ 运算符。它们都可以用于动态申请和释放内存。

对于内置类型数据而言,malloc 和 new 没有太大区别,主要区别在于:

malloc 申请内存的时候要指定分配内存的字节数,而且不会做初始化;

new 申请的时候有默认的初始化,同时可以指定初始化。

但对于类类型的对象而言,用 malloc/free 通常是无法满足要求的。

因为对象在创建的时候要自动执行构造函数,消亡之前要调用析构函数。比如下面这个例子。

malloc/free是C/C标准库函数,new/de

可以看出,在使用 new/delete 会自动调用类的构造函数和析构函数。

由于 malloc/free 是库函数而不是运算符,不在编译器控制之内,不能把执行构造函数和析构函数的任务强加给它,因此,C++还需要 new/delete。

本文由搜财资讯网发布,不代表搜财资讯网立场,转载联系作者QQ 841991949,并注明出处:https://www.ncrw.com.cn/news/keji/34547.html

联系我们

在线咨询:点击这里给我发消息

微信号:18069218786

工作日:9:30-18:30,节假日休息