C6334

警告 C6334:将 sizeof 运算符应用于带有运算符的表达式可能产生意外的结果

此警告意味着 sizeof 运算符的使用有误。 在将 sizeof 运算符应用于表达式时,会生成结果表达式类型的大小。

例如,在下面的代码中:

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

x 将被赋予值 4(而非 9),因为结果表达式不再是指向数组 a 的指针,而只是一个指针。

示例

下面的代码生成此警告:

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...
} 

请参见

参考

sizeof Operator