Variable initialisée mais inconnue par le code, solution incompréhensible! [Résolu]

Signaler
Messages postés
3
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
6 avril 2008
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
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 :
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
<!--[if !IE]><--><!----><!--[endif]--><!--[if IE]>
<![endif]--> 
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;
}
 

<!-- END TEMPLATE: bbcode_code -->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):

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
<!--[if !IE]><--><!----><!--[endif]--><!--[if IE]>
<![endif]--> 
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;
}
 

<!-- END TEMPLATE: bbcode_code -->avez-vous une idée de quoi il s'agit?


merci par avance.

mskhelladi

4 réponses

Messages postés
3
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
6 avril 2008

merci pour tout j'ai résolu le problème remplaçant char* par std::string et ça marche

@+

mskhelladi
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Le coup de rajouter un printf ou un cout et que ton code se met à marcher, c'est typique des conflits entre thread.
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ton programme est multithread ?

"le code ne reconnais plus "gcell[i].U2"" cad. Le compilo te dit qu'elle est pas définie ?
Messages postés
3
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
6 avril 2008

- oui le code est multithread
- non, pas d'erreur de compilation! mais le résultat donne des valeurs infinies pour "gcell[i].U2"
mskhelladi