C6334
Aviso C6334: operador sizeof aplicado a uma expressão com um operador pode produzir resultados inesperados
Este aviso indica um mau uso o sizeof operador. The sizeof operador, quando aplicado a uma expressão, produz o dimensionar do tipo da expressão resultante.
Por exemplo, no código a seguir:
char a[10];
size_t x;
x = sizeof (a - 1);
x será atribuído o valor 4, não 9, porque a expressão resultante não é mais um ponteiro para o array a, mas simplesmente um ponteiro.
Exemplo
O código a seguir gera este aviso:
void f( )
{
size_t x;
char a[10];
x= sizeof (a - 4);
// code...
}
Para corrigir esse aviso, use o seguinte código:
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}