Condividi tramite


C6334

avviso C6334: l'applicazione dell'operatore sizeof a un'espressione con un operatore può provocare risultati imprevisti

L'avviso indica un utilizzo errato dell'operatore sizeof. L'operatore sizeof, applicato a un'espressione, genera la dimensione del tipo dell'espressione risultante.

Nel codice seguente, ad esempio:

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

A x verrà assegnato il valore 4, non 9, perché l'espressione risultante non è più un puntatore alla matrice a, bensì semplicemente un puntatore.

Esempio

Il codice seguente genera questo avviso:

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

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

Per risolvere il problema, utilizzare il codice seguente:

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

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

Vedere anche

Riferimenti

sizeof Operator