Vous ne pouvez pas avoir de pointeur sur des objets managé. (sauf utilisation de pin et autres joyeusetés)
Ces objets migrent en mémoire lors du compactage mémoire que fait régulièrement le runtime .NET.
"type^ variable" n'est donc pas un pointeur mais un "handle" sur un objet. Cet handle à l'immense avantage de toujours être valide même après compactage, et en plus, il permet de réservé une référence sur l'objet pour éviter qu'il soit libéré, par inadvertance, par
le garbage collector.
Paul Bacelar, Ex - MVP VC++