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