欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > new和malloc的区别

new和malloc的区别

2024/10/24 14:15:36 来源:https://blog.csdn.net/weixin_44593575/article/details/141571346  浏览:    关键词:new和malloc的区别

1.new是c++的操作符,而malloc是库函数

2.new后面跟着的是类名,malloc函数里面是要申请分配内存空间的大小

3.new操作符申请内存分配时无需指定内存块的大小,编译器会根据类型信息自动计算。而malloc则需要手动指定所需内存的大小

4.new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无需进行类型的转换,故new是符合类型安全性的操作符。而malloc内存分配成功后返回的是void*类型的指针,需要通过强制转换的方式将void*指针转换成我们需要的类型

5.new如果内存分配失败的话会返回bac_alloc异常,而malloc分配失败的话会返回NULL

6.new会先调用operator new函数,申请足够的内存。然后调用类型的构造函数,初始化成员变量,最后返回自定义类型指针。而malloc只能动态的申请和释放内存,无法强制要求其做自动以类型对象构造函数。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com