1. ホーム
  2. c

[解決済み】バスエラーとは何ですか?セグメンテーションフォールトとは違うのですか?

2022-03-30 19:41:50

質問

バスエラーとは、どのようなメッセージなのでしょうか? セグメンテーション・フォールト ?

解決方法は?

バスエラーは、x86では現在では珍しく、プロセッサが要求されたメモリアクセスを試みることさえできないときに発生します。

  • アライメント要件を満たさないアドレスでプロセッサ命令を使用した場合。

セグメンテーションフォールトは、自分のプロセスには属さないメモリにアクセスしたときに発生します。セグメンテーションフォールトは非常に一般的で、通常、次のような原因で発生します。

  • 割り当て解除されたものへのポインタを使用した場合。
  • 初期化されていない、つまり偽のポインタを使用した場合。
  • ヌルポインタの使用。
  • バッファをオーバーフローさせる。

追記:より正確に言うと、問題が発生するのはポインタ自体の操作ではありません。ポインタが指すメモリにアクセスする(デリファレンスする)ことです。