不安全的陣列索引
void Main()
{
unsafe
{
int[] a = {1, 2, 3};
fixed(int* b = a)
{
Console.WriteLine(b[4]);
}
}
}
執行此程式碼會建立一個長度為 3 的陣列,但隨後會嘗試獲取第 5 個專案(索引 4)。在我的機器上,這列印 1910457872
,但行為沒有定義。
如果沒有 unsafe
塊,則無法使用指標,因此無法在不引發異常的情況下訪問陣列末尾的值。