Boucle sans arret

Résolu
nassim1987 Messages postés 105 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 27 janvier 2014 - 1 oct. 2011 à 20:36
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 - 5 oct. 2011 à 15:10
bonjour,
j'ai un petit problème dans un code que j’écris en c, voila la partie où est situé le problème.

for( i=0;i<Height+2;i++){
for( j=0;j<Width+2;j++){

if ( (i=0) || (j=0) || (i=Height+1) ||(j=Width+1) ){
rg[i][j]=0;
}
else {

rge[i][j]=i+j;
}

}

}


ma boucle ne s’arrête pas, j'ai pu confirmer ça en essayant de débugger, à l’exécution j'ai une boucle infini.

Pouvez vous m'indiquer ou se situe l'erreur

Merci

5 réponses

mogwai93 Messages postés 361 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 19 mars 2015
1 oct. 2011 à 20:52
tu fais des affectations au lieu de faire des tests

remplace
if ( (i=0) || (j=0) || (i=Height+1) ||(j=Width+1) ){

par
if ( (i==0) || (j==0) || (i==(Height+1)) ||(j==(Width+1)) ){
3
nassim1987 Messages postés 105 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 27 janvier 2014 1
1 oct. 2011 à 20:54
Merci, c'est vrai ,quelle erreur bête,j'ai pas fait attention

a++.
0
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
3 oct. 2011 à 10:18
Hello,
Même si ta demande a trouvé une réponse, je te fais part de ma petite analyse.
Apparemment, tu fais du traitement d'images. Du coup, le code que tu nous montres parcourt une image. Or, il y a truc qui me chagrine:
for( i= 0;i< Height+2 ;i++)

Pourquoi cherches-tu à "aller 2 pixels après le bord de ton image"? Généralement, les boucles sont de la formes suivantes:
for(i =0; i<Height; i++)

voire même, si tu ne gères pas les bords:
for(i=1; i<Height-1; i++)


Attention, donc, aux bornes de tes boucles, qui peuvent te créer des problèmes par la suite.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
nassim1987 Messages postés 105 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 27 janvier 2014 1
4 oct. 2011 à 19:04
Oui, c'est exact mais la j'ai agrandi ma matrice avec des éléments null pour pouvoir appliquer un filtre,c'est pour ne pas avoir de pb avec le bord de l'image
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
5 oct. 2011 à 15:10
Très mauvaise manière de faire...
Pour gérer les bords, tu as 2 "écoles":
- la 1ère: ne pas les gérer. C'est-à-dire que tu parcours ton images en "laissant une bande de 1 pixel" autour de ton image
- la 2: quand tu débordes de ton image, au lieu de taper dans le vide, tu vas chercher le pixel "de l'autre côté", un peu comme si tu pliais ton image pour coller les bords


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous