いくつかのバイナリデータ(画像など)を受け入れて何かを実行するC++のSDKがあるとします。このSDKを「クラッシュプルーフ」にすることはできませんか?クラッシュとは、主に、ユーザーから渡された無効な入力(異常に短いジャンクデータなど)が原因で、メモリアクセス違反時にOSが強制的に終了することを意味します。
私はC++の経験がありませんが、グーグルで検索したところ、解決策のように聞こえるいくつかの手段が見つかりました(配列の代わりにベクトルを使用する、自動境界チェックが実行されるようにコンパイラーを構成するなど)。
私がこれを開発者に提示したとき、彼はそれがまだ不可能であると言いました。私が彼を信じていないというわけではありませんが、もしそうなら、Javaのような言語はこれをどのように処理しますか?JVMは境界チェックのたびに実行されると思いました。もしそうなら、なぜC ++で同じことを手動で行うことができないのですか?
UPDATE
「クラッシュプルーフ」とは、アプリケーションが終了しないという意味ではありません。何が起こったのかを知らずに突然終了してはいけないということです(コアダンプなどはありますが、「引数xが無効でした」などのメッセージを表示することはできませんか?)