C6334
avertissement C6334 : l'application de l'opérateur sizeof à une expression avec opérateur peut provoquer des résultats inattendus
Cet avertissement indique une utilisation incorrecte de l'opérateur sizeof.Lorsqu'il est appliqué à une expression, l'opérateur sizeof affiche la taille du type de l'expression obtenue.
Par exemple, dans le code suivant :
char a[10];
size_t x;
x = sizeof (a - 1);
La valeur 4, et non 9, est assignée à x car l'expression obtenue n'est plus un pointeur vers le tableau a, mais simplement un pointeur.
Exemple
Le code suivant génère cet avertissement :
void f( )
{
size_t x;
char a[10];
x= sizeof (a - 4);
// code...
}
Pour corriger cet avertissement, utilisez le code suivant :
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}