0

制御されていないフォーマット文字列の脆弱性を開かずに、C でその場でフォーマット文字列を変更するための最良の方法を見つけようとしています。

浮動小数点数と、印刷用の有効数字の数に対応する符号なし整数を含む構造体にデータがあります。

整数を使用して、オンザフライでフォーマット文字列の精度を生成したいと思います。

3生成する"%.3g"

21生成する"%.21g"

コードをエクスプロイトに開かずにこれを行う安全な方法はありますか?

4

1 に答える 1

1

はい、あなたは運がいいです。フォーマット文字列で精度フィールドを利用する必要があります。その中で、.*表記法を提供し、精度の値を保持する対応する整数引数を指定できます。

これを実現するには、次のパターンを使用できますprintf()

 printf("%.*g", int_precision, decimal_to_print)
于 2015-07-08T17:29:31.070 に答える