C6334
警告 C6334: 演算子を伴う式に適用される sizeof 演算子は、予期しない結果を生成する可能性があります
この警告は、sizeof 演算子の使用方法が誤っていることを示します。sizeof 演算子を式に適用した場合、結果の式の型のサイズが出力されます。
たとえば次のようなコードがあるとします。
char a[10];
size_t x;
x = sizeof (a - 1);
結果の式は配列 a のポインターではなくなり、単なるポインターになるため、x には値 9 ではなく 4 が代入されます。
使用例
この警告が発生するコード例を次に示します。
void f( )
{
size_t x;
char a[10];
x= sizeof (a - 4);
// code...
}
この警告を解決するには、次のコードを使用します。
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}