标签: c# clr heap-corruption stack-corruption
如果我得到一个指向数组第一个元素的指针,我可以超越数组的范围并将任意数据写入GC堆内存,有效地破坏堆和垃圾收集器,还是有任何安全的CLR中的警卫反对这种混乱。
代码示例:
unsafe { int[] intArray = new int[100]; fixed (int* ptr = intArray) { *(ptr - 42) = 456872; } }
是否有可能以这种方式导致内存损坏,可能会破坏CLR自己的数据结构?