不安全的数组索引
void Main()
{
unsafe
{
int[] a = {1, 2, 3};
fixed(int* b = a)
{
Console.WriteLine(b[4]);
}
}
}
运行此代码会创建一个长度为 3 的数组,但随后会尝试获取第 5 个项目(索引 4)。在我的机器上,这打印 1910457872
,但行为没有定义。
如果没有 unsafe
块,则无法使用指针,因此无法在不引发异常的情况下访问数组末尾的值。