Bonjour,
je développe un code de calcul CAA, j'ai un problème qui surgit sous certaines conditions. ci-dessous la partie qui me pose problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
        if(gcell[i].cedge[k].etype=="ref")
        {
            R.V1+=lij*H_ref(gcell[i].U2,&n).V1;
            R.V2+=lij*H_ref(gcell[i].U2,&n).V2;
            R.V3+=lij*H_ref(gcell[i].U2,&n).V3;
            R.V4+=lij*H_ref(gcell[i].U2,&n).V4;
            slij+=lij;
        }
le code ne reconnais plus "gcell[i].U2" et pourtant elle est bien calculé en amont.
pour résoudre le problème, j'ai essayé d'afficher le contenu de "gcell[i].U2" et comme par hasard le programme (re)marche juste en utilisant "cout" pour l'impression à l'écran (voir ci-dessous):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
        if(gcell[i].cedge[k].etype=="ref")
        {
            if(gcell[i].cedge[0].etype=="ref")//artifice pour que ça marche
            {
             cout<<gcell[i].U2.V.V4<<endl;
            }
 
            R.V1+=lij*H_ref(gcell[i].U2,&n).V1;
            R.V2+=lij*H_ref(gcell[i].U2,&n).V2;
            R.V3+=lij*H_ref(gcell[i].U2,&n).V3;
            R.V4+=lij*H_ref(gcell[i].U2,&n).V4;
            slij+=lij;
        }
avez-vous une idée de quoi il s'agit?

merci par avance.