次の方法で共有


C28741

警告 C28741: 関数の注釈なしバッファー

この警告は、関数パラメーターとして渡されるバッファーまたは関数から返されるバッファーに、Microsoft ソース コード注釈言語 (SAL) を使用して注釈を付ける必要があることを示します。 スタティック分析ツールでは、このような注釈を使用してバッファー オーバーランを検出できます。

現時点では、非定数文字列のみがこの警告と診断されます。 関数パラメーターとして渡されるか、関数から返されるすべてのバッファーに注釈を付けるのが理想的です。 wchar_t または char の配列がこの警告の候補です。 現在、符号なし文字は含まれていません。

次のコード例では、この警告が生成されます。

  int foo( LPTSTR buffer, size_t cch );

次のコード例では、SAL 注釈 _Out_writes_ を使用して、呼び出された関数がバッファーに書き込むことと、バッファーを NULL にできないことを指定することで、この警告を回避します。 注釈は、バッファーが cch 要素であることを示します。

    int foo(_Out_writes_(cch) LPTSTR buffer, size_t cch );