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.