C6334
Ostrzeżenie C6334: operatora sizeof stosowane do wyrażenia z operatorem może dać nieoczekiwane wyniki
To ostrzeżenie wskazuje na działania sprzeczne z sizeof operatora.sizeof Operator, gdy jest stosowany do wyrażenia, plony rozmiar typu wyrażenie będące wynikiem.
Na przykład w poniższym kodzie:
char a[10];
size_t x;
x = sizeof (a - 1);
xbędzie mieć przypisaną wartość 4, nie 9, ponieważ wyrażenie będące wynikiem jest już wskaźnik do tablicy a, ale po prostu wskaźnik myszy.
Przykład
Poniższy kod generuje ostrzeżenie to:
void f( )
{
size_t x;
char a[10];
x= sizeof (a - 4);
// code...
}
Aby poprawić to ostrzeżenie, należy użyć następującego kodu:
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}