Avertissement du compilateur (niveau 4) C4130
'opérateur' : opération logique sur l’adresse d’une constante de chaîne
L’utilisation de l’opérateur avec l’adresse d’un littéral de chaîne génère du code inattendu.
L’exemple suivant génère l’avertissement C4130 :
// C4130.cpp
// compile with: /W4
int main()
{
char *pc;
pc = "Hello";
if (pc == "Hello") // C4130
{
}
}
L’instruction if
compare la valeur stockée dans le pointeur pc
à l’adresse de la chaîne « Hello », qui est allouée séparément chaque fois que la chaîne se produit dans le code. L’instruction if
ne compare pas la chaîne pointée à la pc
chaîne « Hello ».
Pour comparer des chaînes, utilisez la fonction strcmp
.