Erreur ISO C ++ interdit la comparaison entre pointeur et entier

Erreur ISO C ++ interdit la comparaison entre pointeur et entier
En C ++, des apostrophes uniques sont utilisées pour représenter les caractères, pas les chaînes. Nous utilisons des symboles de citations doubles pour incarner le pointeur. Après avoir compilé les programmes en C ++, nous obtenons différentes erreurs. L'erreur de comparaison est l'une d'entre elles. Parfois, après avoir exécuté le programme, nous acquérons «ISO C ++ Incorpore la comparaison entre pointeur et entier» ou de temps à autre, nous obtenons «la comparaison ISO C ++ interdit entre pointeur et entier [-fpermissive]». Lorsque nous obtenons ce type d'erreurs, nous devons vérifier la condition de comparaison appliquée au programme. Nous devons garder cette chose à l'esprit que la condition de comparaison est incompatible avec le type de données distinct. Pour résoudre l'erreur de comparaison C ++ interdit, nous devons simplement évaluer la forme comparable des variables définies dans des conditions.

Dans cet artefact, nous travaillons sur ces erreurs et voyons comment les résoudre en C++.

Avoir différents types de variables de données pendant la comparaison:

Après avoir utilisé la norme de l'espace de noms, nous déclarons la fonction dans cette instance. Ensuite, nous initialisons la variable «V» pour la valeur et attribuons la valeur 1. Nous appliquons la condition IF pour comparer la valeur avec la fonction. Si la valeur est supérieure à la fonction, il y aura une augmentation de 1 dans la valeur. La fonction doit renvoyer la valeur. Maintenant, nous commençons le corps principal du code. Nous déclarons la variable «V».

#inclure
Utilisation de Namespace Std;
int f (int j, int k)
int v = 1;
if (v> f)
return (v + 1);

retour v;

int main()
int v = f (4,7);
retour 0;

Après la compilation, nous obtenons l'erreur «ISO C ++ interdit la comparaison entre pointeur et entier [-fpermissive]», donc le programme n'est pas exécuté.

Lorsque nous appliquons la condition si (v> f), nous faisons une erreur ici. Nous comparons la fonction à Integer, donc ici cette comparaison est erronée. Comparez toujours ces variables qui contiennent un type de données similaire. Lorsqu'une évaluation est inexacte, nous acquérons ce type d'erreur. Par conséquent ici, nous devons évaluer avec quelques valeurs intégrales. Ici, nous avons éliminé l'appel de fonction et l'évalué avec une valeur entière. En faisant cela, l'erreur peut être résolue.

Type non valide 'double (int)':

Au début du programme, nous englobons la bibliothèque . Ensuite, nous définissons la taille de la liste. Dans le corps principal, nous définissons les variables. Le type de données de liste est «double». Nous déclarons la fonction «get_avg» ayant un type de données double. Nous passons deux paramètres pour la fonction. Ensuite, nous déclarons la variable «somme» avec le type de données double. Nous demandons une boucle, et la valeur est incrémentée pour obtenir la somme.

#inclure
#define taille 15
int main (void)
Double liste;
double get_avg (const double liste [], int r);
Int J;
double somme = 0;
int n [taille];
pour (j = 0; jsum + = list [j];

retour (somme);

Ici, nous obtenons également la même erreur. Parce que la fonction contient toujours les arguments avec le même type de données. Et dans ce code, nous passons le paramètre de la fonction ayant des types de données différents.

Utilisez la déclaration IF-ELSE:

Ce programme comprend d'abord le fichier d'en-tête à des fins de saisie et de sortie. Ensuite, nous utilisons la norme de l'espace de noms. Dans le corps principal du code, nous déclarons la chaîne «S». Le type de données de la chaîne est «char». Nous passons la valeur 5 comme argument à la chaîne. De plus, nous appliquons la condition IF-Else; Si l'utilisateur entre «xyz», la fonction «cout» affiche «correcte» à l'écran; Sinon, il affiche un message «en correct».

#inclure
Utilisation de Namespace Std;
int main()
char s [5];
couter << "Enter string";
cin >> s;
if (s == 'xyz')

couter << "correct";
autre
couter << "In correct";

retour 0;

Lorsque nous exécutons le programme, nous acquérons l'erreur: «ISO C ++ Forbids Comparon entre pointeur et entier [-fperMissive]. If (s == 'xyz'), ici 's' est un char * constant. Et c'est un éventail de personnages. Mais ici, «xyz» est délibéré comme une valeur entière. Il doit s'agir d'une valeur de chaîne insistante en raison du fait qu'un seul devis est délibéré en tant que valeur intégrale.

Nous obtenons différents types d'erreurs après avoir exécuté les programmes. Les erreurs sont d'erreur d'exécution de deux types et d'erreur de temps du compilateur. Cette erreur est une erreur d'exécution.

Comment résoudre l'erreur?

Ci-après intégrant le fichier d'en-tête et utilisant la norme de l'espace de noms. Nous faisons davantage de codage dans le corps principal. La chaîne est déclarée. Nous utilisons «cout» pour imprimer le message «Entrez la chaîne» à l'écran, donc l'utilisateur entre dans la chaîne. Pour vérifier la condition, nous utilisons l'instruction IF-ELSE.

#inclure
Utilisation de Namespace Std;
int main()
String S;
couter << "Enter the string: ";
cin >> s;
if (s == "xyz")

couter << "correct";
autre
couter << "In correct";

retour 0;

Par conséquent, à titre de comparaison, nous devons utiliser des guillemets doubles «XYZ». Et l'indiquer comme une variable de chaîne. Maintenant, nous pouvons nous raconter en utilisant S == «XYZ».

Comme l'utilisateur entre la chaîne 'xyz', le programme imprime correctement parce que nous avons défini la même chaîne dans le code ci-dessus. L'utilisateur a entré une chaîne, et la chaîne définie est la même, nous obtenons donc cette sortie.

Conclusion:

Cet article définit d'abord l'erreur ISO C ++ interdit la comparaison entre pointeur et entier. Nous avons également expliqué la raison de cette erreur. Et la méthode pour résoudre ce problème. Lorsque nous comparons les variables ayant, contrairement aux types de données, nous acquérons ce type d'erreur. Pour éliminer ce type d'erreur, nous devons utiliser des variables avec des types de données identiques lors de la comparaison de deux variables.