Comparaison toujours fausse ????
Résolu
ffoh
-
ffoh -
ffoh -
Bonjour,
j'ai un pointeur vers une suite de pairs de nombres (colonne et ligne) pour verifier qu'il n'y a pas d'erreur je verifie si on est dans le bon intervalle mais avec ce test je recois un warning:
comparaison is always false due to limite range of data type
voici le code a probleme:
if ( ( (int) ptr[i] > this->nbLigne || (int) ptr[i ] < 0 ) ||
( (int) ptr[i+1] > this->nbCol || (int) ptr[i+1] < 0 ) )
throw monException();
je ne comprend ou est mon erreur
j'ai un pointeur vers une suite de pairs de nombres (colonne et ligne) pour verifier qu'il n'y a pas d'erreur je verifie si on est dans le bon intervalle mais avec ce test je recois un warning:
comparaison is always false due to limite range of data type
voici le code a probleme:
if ( ( (int) ptr[i] > this->nbLigne || (int) ptr[i ] < 0 ) ||
( (int) ptr[i+1] > this->nbCol || (int) ptr[i+1] < 0 ) )
throw monException();
je ne comprend ou est mon erreur
A voir également:
- Comparaison toujours fausse ????
- Comparaison million milliard - Accueil - Technologies
- Fausse alerte mcafee - Accueil - Piratage
- Fausse alerte connexion facebook - Guide
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Fausse alerte virus google - Guide
5 réponses
Salut,
Ca ne serait pas plutôt des && que tu aurais mis dans ton code ? L'explication viendrait dans ce cas du fait que tu as mis :
if(a>ligne && a<0) au lieu de if(a<ligne && a>0).
Ca ne serait pas plutôt des && que tu aurais mis dans ton code ? L'explication viendrait dans ce cas du fait que tu as mis :
if(a>ligne && a<0) au lieu de if(a<ligne && a>0).
je crois pas
ex si a =4 et ligne=3
on peut pas avoir 4<0 && 4>ligne les 2 en meme temps c impossible non ? donc la ce sera tjs faux
ex si a =4 et ligne=3
on peut pas avoir 4<0 && 4>ligne les 2 en meme temps c impossible non ? donc la ce sera tjs faux
ce serait pas par hasard parce que je cast en int (ce que je suis obligé de faire avec un pointeur de void
Je sais bien, c'est justement ce que je te disais. Je pensais que tu avais fait une erreur du genre dans ton if.
Tu dis vouloir vérifier un intervalle. Mais je ne vois pas de && dans ton if.
Tu as mis if (a<0 || a>ligne || b<0 || b>ligne). Il faudrait mettre if(a>0 && a<ligne && b>0 && b<ligne).
Tu dis vouloir vérifier un intervalle. Mais je ne vois pas de && dans ton if.
Tu as mis if (a<0 || a>ligne || b<0 || b>ligne). Il faudrait mettre if(a>0 && a<ligne && b>0 && b<ligne).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
[c++]((int*)ptr)[i];[\c++]
ne marche pas, en faite ca me donne une adresse plutot que le "int" que je cherche
mais sinon, j'avais jsute completement oublié que dans mon enoncé on pointait le pointeur pointait vers des "unsigned" et non des "int" et donc ce qui était pointé etant tjs positif d'ou la comparaision tjs juste
desolé et merci pour vos conseil
ne marche pas, en faite ca me donne une adresse plutot que le "int" que je cherche
mais sinon, j'avais jsute completement oublié que dans mon enoncé on pointait le pointeur pointait vers des "unsigned" et non des "int" et donc ce qui était pointé etant tjs positif d'ou la comparaision tjs juste
desolé et merci pour vos conseil