ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
プログラムが、不正なメモリーの書き換えやメモリー操作を行なうこと。ここで言う破壊とは、物理的な破壊ではなく、論理的な破壊を指す。
プログラムの内容により、その症状は異なる。
軽度では隣接したデータエリアの内容を破壊することでプログラムが異常動作する程度だが、データエリアを超えてプログラムコードそのものを書き換えてしまったり、自分のプログラムに割り当てられたメモリーの外まで書き換えてしまうなどまでいくと、システムとして致命傷ともなりうる。
このため、UNIXや32ビットWindowsなど、メモリー保護機能を持つマルチタスクオペレーティングシステムではプログラム割り当て外のメモリー破壊を検知し、それを行なったプログラムをシステムが強制終了することができる。
この時、UNIXでは「Segmentation fault」、Windowsでは各種の例外エラーとして通知される。
高等テクニックとして、プログラムコードを実行中に書き換える事でプログラムの流れを制御したりする手法が、特にメモリーの少なかった初期(8ビットマイクロプロセッサーの時代)のコンピューター向けに一部で使われた。
しかしこれは、プログラムの可読性が極端に悪くなる上、マルチタスクやメモリー保護の環境に対応しにくく、実行環境に依存して移植性が悪くなるなどの理由により、現在では御法度の技とされている。
ただし、自己進化型のプログラムなど特定の目的のために、研究機関などでは今でもこれに近い技術が使われている場合もある。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます