Garbage Script on Goo BLOG

某SIerの"元"研究者 兼 情報Security技術者"F.Koryu"の日常の雑記置き場

用途(作るモノ)にもよるでしょうが……>Cのポインタ不要論

2006-02-21 19:04:42 | セキュリティ(旧エントリー分)
ポインタ不要論 - 極楽せきゅあ日記
園田先生の処から。元ネタはココ
(元ネタの方は純粋なC話ではなく、C++も一部混ざっちゃっていますが(STL使うなら、当然C++になりますしねぇ)……。)

自分も最早プログラマとは言えない状態にありますが(苦笑)、普通のアプリケーションを作る目的でCで書くなら、ポインタは使わない方が吉でしょうね。
(例えばOSのカーネルとかデバイスドライバとか、組み込み系機器のプログラムをするなら、多分ポインタは必要でしょうけれど……。)

なら元ネタで書かれているC++なら良いかと言うと、C++には言語レベルでガベージコレクションが用意されていない(メモリ管理はCと同様自分(プログラマ側)で管理する必要がある)ので、例えばデストラクタの呼び出し忘れによるメモリリーク……とかの問題も残ったりします。

あと「入力値を信用しない」は……これは言語問わず汎用的に言える事ですね。別にポインタを隠蔽しているような言語(JavaやC#、各種スクリプト言語など)であっても、例えばバッファオーバーフローやXSS等の不正攻撃は起こりますしね。

どちらかと言えば「ポインタ要・不要」よりも、「入力値は信用しない・出来ない事を前提としたプログラミング(これはプログラム外部からの入力もそうですが、モジュール(関数)レベルでも当てはまります)」の方が、本当はもっと重要なのかと思います。


最新の画像もっと見る