それでもまぁ、まだ必要なわけで。
(メモリ保護されていない世界のつづきです)
いや~。スカっとしますな。
【マイコントラブル5】機器操作中に突如リセット,C言語の典型的バグに注意 – マイコン – Tech-On!
ここで言いたいのは,「だから配列は確保したサイズしか利用しないよう,気を付けること」ではありません。図5-6のように,C言語で記述されたプログラムというのは,メモリ上にローカル変数,命令,グローバル変数,C言語が動作する制御エリアなどが何の壁もなく並んでいるだけです。C言語は,基本的にバグを防いでくれない言語であり,ミスがあってもメモリ上のどこでも自由に書き換えることができてしまいます(高機能なOSを用いた場合には,OSとCPUのメモリ管理ユニット(MMU)で保護をしてくれる機能がありますが,保護される範囲は限定的です)。プログラムの実行時の安全性もこんなにもろいのです。それを理解して安全なソース・コードを書くためには,ソース・コードとメモリの対比表のようなものが,おおよそでも頭に想像できるようになることがベストです。
おっしゃるとおり!
悲しいことに、ここに書かれていることは、マイコンでなくても、最新Windows/Linuxであってもほとんど真実なのです。
さすが、京大マイコンクラブ(KMC)。え?違う!?
おすすめリンクル