バスエラーとは何ですか? セグメンテーション違反と違うのですか? 質問する

バスエラーとは何ですか? セグメンテーション違反と違うのですか? 質問する

「バスエラー」メッセージは何を意味し、それはセグメンテーション違反?

ベストアンサー1

バス エラーは、x86 では現在まれであり、プロセッサが要求されたメモリ アクセスを試行することさえできない場合に発生します。通常、次のような場合に発生します。

  • アライメント要件を満たさないアドレスを持つプロセッサ命令を使用する。

セグメンテーション エラーは、プロセスに属していないメモリにアクセスするときに発生します。これは非常に一般的であり、通常、次のような結果になります。

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

PS: より正確に言うと、問題を引き起こすのはポインタ自体を操作することではなく、ポインタが指すメモリにアクセスすることです (逆参照)。

おすすめ記事