First of all, malloc() and new are both serve similar purposes: allocate new memory on the heap. Both return a pointer to the start address of the allocated memory.
However, they are not interchangeable, as malloc()-ed memory has to be free()-ed while new-ed memory has to be delete-ed.
Another difference is that while malloc() and free() are library functions (#include <stdlib.h>), new and delete are operators on the language level.
If we consider that you want to new an object, not a primitive type, then another important difference is that the new operator calls the constructor of this object and delete calls the corresponding destructor.
There are some more differences, I'll let you read more about the matter here.