C6334
advertencia C6334: El operador sizeof aplicado en una expresión con un operador puede proporcionar resultados inesperados
Esta advertencia indica un uso incorrecto del operador sizeof.El operador sizeof, cuando se aplica a una expresión, produce el tamaño del tipo de la expresión resultante.
Por ejemplo, el siguiente código:
char a[10];
size_t x;
x = sizeof (a - 1);
A x se le asignará el valor 4, no 9, porque la expresión resultante ya no es un puntero a la matriz a, sino tan sólo un puntero.
Ejemplo
El código siguiente genera esta advertencia:
void f( )
{
size_t x;
char a[10];
x= sizeof (a - 4);
// code...
}
Para corregir esta advertencia, utilice el código siguiente:
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}