Like std::malloc(), it's just an allocation function that allocates storage dynamically. The differences are:
They may be allocating storage from different places.
The storage obtained has different requirements for freeing
operator new() can be replaced by the user
behavior on allocation failure is very different
1) RAM is big. A case I've seen is when a (proprietary implementation of) C++ standard library sets up a different set of VM pages for allocations done with new.
2) operator new() is one of the eight replaceable functions in C++. If you provide your own function with identical signature, any call made to it in the same TU, directly or through new, will use your function.