Boucle sans arret

Résolu
Signaler
Messages postés
105
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
27 janvier 2014
-
Messages postés
15192
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 décembre 2021
-
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

Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015

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)) ){
Messages postés
105
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
27 janvier 2014
1
Merci, c'est vrai ,quelle erreur bête,j'ai pas fait attention

a++.
Messages postés
15192
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 décembre 2021
101
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...
Messages postés
105
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
27 janvier 2014
1
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
Messages postés
15192
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 décembre 2021
101
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...