不安全的陣列索引

void Main()
{
    unsafe
    {
        int[] a = {1, 2, 3};
        fixed(int* b = a)
        {
            Console.WriteLine(b[4]);
        }
    }
}

執行此程式碼會建立一個長度為 3 的陣列,但隨後會嘗試獲取第 5 個專案(索引 4)。在我的機器上,這列印 1910457872,但行為沒有定義。

如果沒有 unsafe 塊,則無法使用指標,因此無法在不引發異常的情況下訪問陣列末尾的值。