.NET 下 模拟数组越界

前面一篇文章提到过 数组越界行为,虽然编译器为我们做了大量的检查工作让我们避免这些错误。

但是我觉得还是有必要模拟一下数组越界,感受一下这个错误。

那么对于.NET来说我们怎么来模拟数组越界呢?

 

一、 [VS]  项目 -> 右击 -> 属性 -> 生成 -> (勾选)允许不安全代码

.NET 下 模拟数组越界

 

二、测试代码

.NET 下 模拟数组越界

.NET 下 模拟数组越界

1 unsafe private static void OutOfIndexMini() 2 { 3 int* i = stackalloc int[1]; 4 5 i[0] = 0; 6 //i[0] = 1; 7 8 //double* d = stackalloc double[1]; 9 //d[0] = 0.01; 10 11 int* a = stackalloc int[3]; 12 13 for (; i[0] <= 3; i[0]++) 14 { 15 a[i[0]] = 0; 16 17 Console.WriteLine($"int* i = {i[0]}"); 18 19 Console.WriteLine($"int* a[{i[0]}] = {a[i[0]]}"); 20 } 21 22 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjdyf.html