Why is new better than using malloc?

There are three reasons why new is preferred over malloc:
Object construction: In C++, new and delete create and destroy objects. In contrast, malloc() and free() merely allocate and deallocate memory.
Safety: The new operator returns a pointer of the correct type whereas the function malloc() returns a void*, which isn't type safe. The C language allows a void* to be converted to any other pointer but this can be dangerous. C++ doesn't have this weakness: converting a void* to a different pointer type requires an explicit cast in C++.
Flexibility: The new operator can be overloaded by a class. For example, new Foo() can use a different memory allocation primitive than is used by new Bar(). In contrast, malloc() cannot be overloaded on a class-by-class basis.