Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Operatora sizeof