<yoda voice>If you're app is allocating memory with enough frequency that you'd notice any difference between the two methods, you've got design problems that you should address first. </yoda voice>
Both operator new and malloc call HeapAlloc underneath and that is where the real work is. From a design standpoint if you're writing a C++ app where you're already using operator new to allocate memory for classes, you're better off using it to allocate buffers as well. This reduces the chance that you'll get confused in calling operator delete[] vs. free() when you go to destroy the buffer. It also makes it easier to override the memory allocator and track memory leaks and other sort of diagnostics if your app allocates/frees memory through a single point of code.