Avertissement C6269
Ordre incorrect possible des opérations : dereference ignorée
Cet avertissement indique que le résultat d’une déréférencement de pointeur est ignoré, ce qui soulève la question de la raison pour laquelle le pointeur est déréférencement au premier endroit.
Notes
Le compilateur optimise correctement la déréférence gratuite. Toutefois, dans certains cas, ce défaut peut refléter une priorité ou une erreur logique.
L’une des causes courantes de ce défaut est une instruction d’expression du formulaire :
*p++;
Si l’intention de cette instruction est simplement d’incrémenter le pointeur p
, la déréférencement n’est pas nécessaire ; toutefois, si l’intention consiste à incrémenter l’emplacement vers lequel p
pointe, le programme ne se comporte pas comme prévu, car p++
la construction est interprétée comme (p++)
étant au lieu de (*p)++
.
Nom de l’analyse du code : POINTER_DEREF_DISCARDED
Exemple
Le code suivant génère cet avertissement :
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
*p++;
// code ...
}
Pour corriger cet avertissement, utilisez des parenthèses comme indiqué dans le code suivant :
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
(*p)++;
// code ...
}
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