C6334
Aviso C6334: aplicado a uma expressão com um operador de operador sizeof pode produzir resultados inesperados
Este aviso indica um mau uso o sizeof operador.O sizeof operador, quando aplicado a uma expressão, produz o tamanho do tipo da expressão resultante.
Por exemplo, no código a seguir:
char a[10];
size_t x;
x = sizeof (a - 1);
xserá atribuído o valor 4, não a 9, porque a expressão resultante não é mais um ponteiro para a matriz 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 código a seguir:
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}