是否可能使用unsafe关键字在C#中导致内存损坏

时间:2015-01-08 09:49:37

标签: c# clr heap-corruption stack-corruption

如果我得到一个指向数组第一个元素的指针,我可以超越数组的范围并将任意数据写入GC堆内存,有效地破坏堆和垃圾收集器,还是有任何安全的CLR中的警卫反对这种混乱。

代码示例:

unsafe {
    int[] intArray = new int[100];
    fixed (int* ptr = intArray) {
        *(ptr - 42) = 456872;
    }
}

是否有可能以这种方式导致内存损坏,可能会破坏CLR自己的数据结构?

0 个答案:

没有答案