Avertissement C6334
sizeof
l’opérateur appliqué à une expression avec un opérateur peut produire des résultats inattendus
Notes
L’opérateur sizeof
, lorsqu’il est appliqué à une expression, génère la taille du type de l’expression résultante.
Nom de l’analyse du code : SIZEOFEXPR
Exemple
Le code suivant génère cet avertissement. Étant donné qu’il a - 4
s’agit d’une expression, sizeof
retourne la taille du pointeur résultant, et non la taille de la structure trouvée à ce pointeur :
void f( )
{
size_t x;
char a[100];
x = sizeof(a - 4);
assert(x == 96); //assert fails since x == sizeof(char*)
}
Pour corriger cet avertissement, vérifiez que vous utilisez la valeur de sizeof
retour , et non l’argument à celui-ci :
void f( )
{
size_t x;
char a[100];
x = sizeof(a) - 4;
assert(x == 96); //assert succeeds
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour