I spent years of working with both C++ and C#. You use C++ when you need performance, to write a driver, or want you app to be small and do not have dependencies on .NET framework. But if you are not paying strict attention to memory allocation/freeing, good luck spending days and weeks finding...