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