what is the difference between Malloc and new operator to allocate a memory?

Possible Duplicate:
What is the difference between new/delete and malloc/free?

I was confused when I create an object by using new operator in C++. There must be difference between malloc and new operator that would allow me to resize the memory block. If I want to allocate a memory I use malloc but what if I use a new operator?

İsn't it allocate a memory? Can you explain that when shoul I use malloc and when should I use new ?

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

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

thanks so much.


In C++ you should always use new and pair it with delete .

  • It calls constructor(s) for the object(s).
  • Since it is an operator, it can be overloaded.
  • It throws exceptions, but there is an exceptionless version.
  • There is a "placement new", which allows you to put your object in already allocated memory.

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


    new will not only allocate you memory for objects but will also call the constructor on the objects created. malloc will just allocate you a block of memory of the given size with no guarantee of the contents.

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

    上一篇: 使用new和without实例化对象有什么区别

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