Sdílet prostřednictvím


C6334

Upozornění C6334: použití operátoru sizeof na výraz obsahující operátor může vrátit neočekávaný výsledek

Toto upozornění označuje nesprávné použití operátoru sizeof.Použití operátoru sizeof na výraz vrací velikost výsledného typu výrazu.

Například v následujícím kódu:

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

bude proměnné x přiřazena hodnota 4 a ne 9, protože výsledný výraz již není ukazatelem na pole a ale jen běžným ukazatelem.

Příklad

Následující kód generuje toto upozornění:

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

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

Pro opravu tohoto upozornění použijte následující kód:

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

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

Viz také

Referenční dokumentace

Operátor sizeof