只是好奇,在 C# 中是否有或是否有人遇到过堆/缓冲区溢出异常?
3115 次
2 回答
9
在不安全的代码中,您可能会导致 C# 中的缓冲区溢出。例如:
public unsafe struct testo
{
public int before;
public fixed int items[16];
public int after;
}
testo x = new testo();
x.after = 1;
for (int i = 0; i <= 16; ++i)
{
unsafe
{
x.items[i] = 99;
}
}
Console.WriteLine(x.after);
上面将打印“99”,因为它溢出了缓冲区。
没有不安全的代码,我不知道有什么方法可以导致不会触发异常的缓冲区溢出。
于 2010-10-22T19:09:30.367 回答
0
根据缓冲区溢出的含义,IndexOutOfRangeException 是由溢出引起的异常。您可以通过访问超出其分配大小的数组索引来轻松获得它。同样做足够的递归,你可以得到 StackOverflowException。我不确定你在找什么,所以你可能想澄清一下。
于 2010-10-22T18:50:22.237 回答