Compartilhar via


C6334

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

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

Por exemplo, no código a seguir:

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

x será atribuído o valor 4, não 9, porque a expressão resultante não é mais um ponteiro para o array 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 seguinte código:

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

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

Consulte também

Referência

sizeof Operador