From what is written here, new allocates in free store while malloc uses heap and the two terms often mean the same thing.
In general, no.
There are a slew of things which must hold to make it safe:
Trivial types satisfy the above requirements.
In addition:
new[]-function must pass the request on to malloc without any change, nor do any bookkeeping on the side. You can force this by replacing global new[] and delete[], or the ones in the respective classes.