要使用指针,您必须允许不安全的代码,并使用指针标记方法unsafe.然后,您必须修复内存中的任何指针,以确保垃圾收集器不会移动它们:
byte[] buffer = new byte[256];
// fixed ensures the buffer won't be moved and so make your pointers invalid
fixed (byte* ptrBuf = buffer) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是不安全的,因为从理论上讲,您可以获取指针,遍历整个地址空间,并破坏或更改内部CLR数据结构,例如,更改方法实现.您无法在托管代码中执行此操作.