ソフトウェア終了時に「メモリが"read"になることはできませんでした。」というエラーメッセージに遭遇したことがありませんか?
これは平たく言えば「メモリを読み込むことができませんでした」ということです。
英語で言うと、The memory could not be read. となります。
ソフトウェアはメモリに読み込まれたデータを「読みに行く」わけですが、このとき読みに行ってはいけない場所、または読みに行くように指定されていない場所にアクセスした場合、このエラーが出されます。
このように、ソフトウェアがメモリの禁止区域に立ち入ろうとしてエラーとなることを 「メモリ保護違反」(memory protection fault)または一般保護違反(general protection fault)と言います。ただし、このエラーはWindows NT系のOSでは改善されているようです。
これによく似た用語で、「メモリの共有違反」というものがあります。
英語では"Sharing violation"と言います。これは上記の違反とは異なります。
あるプログラムが終了時に、使用していたメモリのアドレス領域を解放しなかったため、別のプログラムがそのアドレスにアクセスを試みたときに「競合」が発生し、メモリ共有違反として報告されるものです。
また、あるプログラムが使用しているメモリのアドレスに、別のプログラムがアクセスを試みた場合にも発生します。このときは、最初のプログラムを終了させるだけで共有違反は解消されます。
※メモリのアドレス
メモリ内部にはアドレスと呼ばれる「番地」が割り振られており、メモリ空間はこの番地によって管理されています。
これは平たく言えば「メモリを読み込むことができませんでした」ということです。
英語で言うと、The memory could not be read. となります。
ソフトウェアはメモリに読み込まれたデータを「読みに行く」わけですが、このとき読みに行ってはいけない場所、または読みに行くように指定されていない場所にアクセスした場合、このエラーが出されます。
このように、ソフトウェアがメモリの禁止区域に立ち入ろうとしてエラーとなることを 「メモリ保護違反」(memory protection fault)または一般保護違反(general protection fault)と言います。ただし、このエラーはWindows NT系のOSでは改善されているようです。
これによく似た用語で、「メモリの共有違反」というものがあります。
英語では"Sharing violation"と言います。これは上記の違反とは異なります。
あるプログラムが終了時に、使用していたメモリのアドレス領域を解放しなかったため、別のプログラムがそのアドレスにアクセスを試みたときに「競合」が発生し、メモリ共有違反として報告されるものです。
また、あるプログラムが使用しているメモリのアドレスに、別のプログラムがアクセスを試みた場合にも発生します。このときは、最初のプログラムを終了させるだけで共有違反は解消されます。
※メモリのアドレス
メモリ内部にはアドレスと呼ばれる「番地」が割り振られており、メモリ空間はこの番地によって管理されています。





