C6334

Aviso C6334: aplicado a uma expressão com um operador de operador sizeof pode produzir resultados inesperados

Este aviso indica um mau uso o sizeof operador.O sizeof operador, quando aplicado a uma expressão, produz o tamanho do tipo da expressão resultante.

Por exemplo, no código a seguir:

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

xserá atribuído o valor 4, não a 9, porque a expressão resultante não é mais um ponteiro para a matriz a, mas simplesmente um ponteiro.

Exemplo

O código a seguir gera este aviso:

void f( )
{   
  size_t x;
  char a[10];

  x= sizeof (a - 4);
  // code...
}

Para corrigir esse aviso, use o código a seguir:

void f( )   
{
  size_t x;
  char a[10];

  x= sizeof (a) - 4;
  // code...
} 

Consulte também

Referência

Operador sizeof