次の方法で共有


C6054

警告 C6054: 文字列 <変数> は 0 で終了しない可能性があります。

この警告は、0 で終了する文字列が必要な関数に 0 以外で終了する文字列が渡されたことを示します。0 で終了する文字列を想定する関数では、バッファーの終端を超えて 0 を検索してしまいます。この問題によって、攻撃に利用される可能性のあるバッファー オーバーラン エラーまたはクラッシュが発生する場合があります。プログラムで、文字列が 0 で終わることを確認する必要があります。

使用例

この警告が発生するコード例を次に示します。

#include <sal.h>

void func( _In_z_ wchar_t* wszStr );

void g ( )
{
    wchar_t wcArray[200];
    func(wcArray); // Warning C6054
}

この警告を解決するには、次のサンプルコードに示すように、関数 func() を呼び出す前に wcArray を null で終了させます。

#include <sal.h>

void func( _In_z_ wchar_t* wszStr );

void g( )
{
    wchar_t wcArray[200]; 
    wcArray[0]= '\0';
    func(wcArray);
}

参照

関連項目

C6053

その他の技術情報

注釈の概要

NullTerminated