c/c++ で呼び出しスタックを損傷する通常のコードはありますか? 私は一種のハッキングや何かを意味するのではなく、単に見落としや何かを意味するのではなく、ランダムではなく、毎回ダメージを与えます. 誰かが元同僚が成功したと私に言ったが、私はそれが可能だとは思わない. 誰かがそのような経験をしていますか?
質問する
307 次
2 に答える
6
はい、簡単です。実際、非常に一般的な問題の 1 つです。このことを考慮:
void foo()
{
int i;
int *p = &i;
p -= 5; // now point somewhere god knows where, generally undefined behavior
*p = 0; // boom, on different compilers will end up with various bad things,
// including potentially trashing the call stack
}
ローカル配列/バッファの境界外アクセスの多くの場合、最終的にスタックが破棄されます。
于 2012-04-06T09:43:28.243 に答える