According to this article, CRT uses separate heap (is it private heap?), but this little example shows that CRT heap and Default heap are the same
FWIW, in addition to Hans's answer. I've managed to force VS2012 CRT to use private heap with below options (unfortunately with linker warnings):
smalheap.obj to Linker/Input/Additional Dependencies/FORCE:MULTIPLE to Linker/Command Line/Additional Options (to avoid LNK2005 error for _heap_init and friends)IMHO, it's sad that we do not have an option for private heap and c-runtime dynamic dll. This would help with memory leaks in 3rd party libraries. In case of long running process you can just unload everything and load again.