さきに述べた「糸巻き歪み・樽歪み・傾斜画像補正プログラム」では,大きな画像データを一時的にコンピュータの記憶場所に持ってきて処理します。C言語では百万以上の記憶場所は自動的には確保できません。ヒープ領域という,特別な場所から借りてきて(ヒープ領域確保)使います。終わったら開放(ヒープ領域解放)しなければなりません。開放しないままプログラムを終了してしまうと,その場所は他のアプリ(たとえばMS-Wordとか,インターネットエクスプローラーなど)でも使えなくなります。何度かそれを繰り返すと,他のアプリでも,「メモリが足りません」などというメッセージを出して異常終了してしまったりします。
開発したソフトは実行中にCtrlキーを押しながらcキーを押す(Ctrl+c)と強制的に終了してしまいます。下のフローチャートの点線部分は,長いループの中にあるので,Ctrl+cが押された瞬間,プログラムの流れがその場所にいる確率が高くなります。Ctrl+cを押すと,そこにいてもいきなりプログラムを終了してしまいます。すると,そのループの前で確保したヒープ領域を開放することなく終了してしまいます。そうすると,上で述べたような不都合を生じることになります。
そこで,対策を考えました。緑斜線の部分のプログラムを長いループの中に入れます。斜線部分は,Ctrlキーが押されていたら,ヒープ領域を開放して終了するものです。Ctrl+cは,まずCtrlキーを押し,その状態でcキーを押します。なので,Ctrlキーを押した瞬間にキープ領域解放の処理をしてしまうので,「メモリが不足」というようなトラブルを回避されます。