4

ちょっと興味があります.C#でヒープ/バッファオーバーフローの例外に遭遇したことはありますか?

4

2 に答える 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 に答える