質問: Segmentation Faultとはなんですか?スタックオーバーフローと違いはありますか? (あと↑これ普通にコピペしただけでここのリンクと同じように扱われないの?(メタ的内容)) 英語版では Segmentation Faultとはなんですか?C/C++でのその定義はどうなっていますか?Dangling pointer都の関係性はありますか? といったところでしょう。 最後に、 Segmentation Fault←これカタカナでどう書いたらいいですか Dangling pointer←これカタカナでどう書いたらいいですか 【追記】 自分で調べたこと Segmentation Faultはメモリアクセスによて起こされるエラーの一種です。 Dangling pointerはデータが無効またはポインタそのものが無効なポインタのことといっている気がします。
回答: > > Segmentation Faultとはなんですか? > > > 使用しているシステム(主にCPUと言うか、そのCPUの採用するメモリ管理機構)により細部には違いがありますが、メモリの特定の領域に対するアクセス違反が検出された時に発生する例外(割り込みと言ったほうがいいかもしれません)をSegmentation Faultと総称して(元はUnix用語でしょう)いて、次のような場合に発生します。 * メモリが割り当てられていない領域にアクセスしようとした(*) * 書き込みが禁止されている領域に書き込もうとした * 実行が禁止されている領域のコードを実行しようとした (* デマンドページングとかは一旦無視しておきます。) 言葉自体は、メモリ管理方式上の(ページング方式に対しての)セグメント方式から来ていると思われるのですが、segmentという言葉自体は「(細分化された後の個々の)部分」と言う意味があるので、ページング主流の時代になっても生き残っているのでしょう。 > > スタックオーバーフローと違いはありますか? > > > 両者は異なる概念です。スタックオーバーフローはSegmentation Faultの原因の大きな一つですが、Segmentation Faultはそれとは独立した概念です。メモリ保護機構がないシステムの場合、スタックオーバーフローが発生してもSegmentation Faultが発生しないまま(いろいろな領域を壊して)実行が続くこともありますし、スタックオーバーフロー以外の様々な要因によってもSegmentation Faultは発生します。 「最後に」はこちらのサイトで扱うトピックとは言い難いように思いますので、パスしておきます。