Compartir a través de


C6334

Actualización: noviembre 2007

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

Vea también

Referencia

sizeof Operator