No, we should not do that. if we do that we can have un-defined or un-predictable results. Which can corrupt other memory too. Instead, we should make a simple rule not to do that.
there is in a error in the question. We can delete memory created by malloc() by using free() comfortably and same applies for new/delete combination. However memory created using malloc() cant be deleted using delete and same for new/free() combination.