Pues estás algo ido:
- C++ es portable.
- C# no es portable.
- C++ es estándar.
- C# es propietario.
- Visual C++ puede usar, o no, el framework.
- Visual C# está obligado a usarle.
Son punteros. ¿No sabes qué son? (!!)
- C++ tiene punteros (ya sé que es evidente).
- C# también tiene punteros, pero son regiones marcadas como "inseguras". Vamos, si los usas, Microsoft no asegura que eso funcione/sea vulnerable/etc.