21xrx.com
2024-12-22 22:30:41 Sunday
登录
文章检索 我的文章 写文章
C++中new和malloc的差异
2023-07-05 13:15:49 深夜i     --     --
C++ new malloc 差异 内存分配方式

在C++编程中,new和malloc都是用于动态分配内存的关键字。然而,它们之间存在一些重要的差异。

首先,new是C++中的操作符,而malloc是C语言中的函数。因此,在C++程序中使用new关键字更符合语言的风格和习惯。与此相比,malloc在C++中并不推荐使用。

另外,new操作符能够自动计算需要分配的内存空间的大小,而malloc必须手动计算并指定需要分配的空间大小。这也是new操作符更易于使用的原因之一。

此外,new会自动调用对象的构造函数,而malloc不会。这对于C++程序中使用的复杂对象来说非常重要。如果使用malloc分配空间,必须手动调用构造函数,否则对象不会被正确地初始化。

最后,new操作符返回的是指向对象的指针,而malloc返回的是void指针。这意味着,使用new操作符分配空间时,程序员不需要再进行类型转换。

总之,虽然new和malloc都能用于动态分配内存,但new更加易于使用,并且能够自动调用对象的构造函数,因此在C++编程中推荐使用new操作符。

  
  

评论区

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