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