假设我有一个IntPtr,它是从本机代码获取的**。当我打算将其引用为void *等效IntPtr时,我使用了以下代码:
unsafe
{
var innerPtr = (IntPtr)outerPtr.ToPointer();
}
为此,我需要启用unsafe
代码。我想知道是否还有另一种方法来转换这种 不安全的指针?
更新:
抱歉,我的问题无效。 (IntPtr)outerPtr.ToPointer()
的使用毫无意义。
答案 0 :(得分:0)
(IntPtr)outerPtr.ToPointer()
实际上并没有做任何有用的事情,结果仍然包含相同的地址。
如果您想要将void**
引为void*
的等效项,则可以使用Marshal.ReadIntPtr(IntPtr address)
。