Malloc和新运营商分配内存有什么区别?

可能重复:
new / delete和malloc / free有什么区别?

我在C ++中使用new运算符创建对象时感到困惑。 malloc和new运算符之间必须有区别,这将允许我调整内存块的大小。 如果我想分配一个内存我使用malloc但如果我使用一个新的操作符?

它不分配内存? 你能解释一下,当我使用malloc,什么时候应该使用新的?

X* ptr = new(1,2) X;

obj = (ObjID *)malloc( sizeof(ObjID) );

非常感谢。


在C ++中,您应该始终使用new并将其与delete配对。

  • 它调用对象的构造函数。
  • 由于它是一个操作员,因此可能会超载。
  • 它抛出异常,但有一个特殊的版本。
  • 有一个“放置新的”,它允许你把你的对象在已经分配的内存中。

  • new分配内存,并且还为你正在分配的类型调用类构造函数。


    new不仅会为对象分配内存,还会在创建的对象上调用构造函数。 malloc只会为你分配给定大小的内存块,但不保证内容。

    链接地址: http://www.djcxy.com/p/78539.html

    上一篇: what is the difference between Malloc and new operator to allocate a memory?

    下一篇: malloc/free and new/delete compatibility in C++?