21xrx.com
2024-12-22 22:50:20 Sunday
登录
文章检索 我的文章 写文章
C++中的new和malloc有什么区别?
2023-07-08 07:40:59 深夜i     --     --
C++ new malloc 区别

在C++中,new和malloc都可以用来分配内存。但是它们之间有一些重要的区别。

首先,new是一个C++运算符,而malloc是一个C语言函数。这意味着,new在C++中是内置的,可以直接使用,而malloc需要包含stdlib.h头文件并使用malloc函数调用。

其次,new和malloc分配内存的方式略有不同。new分配的内存空间可以直接使用和访问,而malloc返回的是指向void的指针,需要进行类型转换才能使用。

另外一个主要区别是new会调用构造函数,而malloc则不会。我们知道,在C++中,对象构造时会调用它们的构造函数,析构时会调用它们的析构函数。因此,当使用new来分配一个类的对象时,首先会分配足够的内存空间,然后调用类的构造函数来初始化对象;而使用malloc则不会自动调用构造函数。

最后,new和malloc在释放内存时也有不同的方式。使用new分配的内存可以使用delete操作符来释放,而使用malloc分配的内存必须使用free函数来释放。

综上所述,new和malloc都可以用来分配内存,但它们之间有很多区别,包括使用方式、分配和释放内存的方式等。因此,在使用时需要根据需要选择合适的方法来分配和释放内存。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复