Partager via


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

Voir aussi

Référence

opérateur sizeof de