C++动态内存分配探秘:new与malloc的关键差异及实例解析 ...

打印 上一主题 下一主题

主题 918|帖子 918|积分 2754

 
概述:在C++中,new 和 malloc 均用于动态内存分配,但存在关键差异。new是C++运算符,能调用构造函数,返回类型明确;而malloc是C函数,仅分配内存,需手动类型转换。示例源代码生动演示了它们在构造函数调用和类型信息方面的不同。
在C++中,new 和 malloc 都用于动态内存分配,但它们之间有一些重要的区别。以下是对它们的详细描述,包括方法、步骤和相应的示例源代码。
new和malloc的区别:

1.使用方法:


  • new: 是C++的运算符,能够调用对象的构造函数,返回类型明确。
  • malloc: 是C语言的库函数,只分配内存块,返回void*,不会调用对象的构造函数。
2.类型信息:


  • new: 知道所分配的类型,可直接使用。
  • malloc: 返回void*,需要手动进行类型转换。
3.构造函数调用:


  • new: 分配对象时会调用构造函数。
  • malloc: 不调用任何构造函数。
示例源代码:

使用new:

[code]#include class MyClass {public:    MyClass() {        std::cout
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表