There are lots of method to allocate memory in Windows environment, such as VirtualAlloc, HeapAlloc, malloc, new.
VirtualAlloc
HeapAlloc
malloc
new
Thus, what's the difference among them?