interior_ptr
当垃圾回收器移动对象时,Interior pointer能随之移动,并始终指向该对象。
但是如果把这个指针返回给外部函数,那么当垃圾回收时(垃圾回收期间会压缩对象,),对象地址发生改变,指针会指向错误的地址。
pin_ptr
在外部调用托管堆中指针时,垃圾回收过程中该指针会发生改变,引起外部调用的错误。必须使用pin_ptr指针将该指针固定。
因此,如果需要在外部访问托管对象,那么必须使用pin_ptr,不能使用interior_ptr,否则可能会出BUG