[résolu] false = true

false = true [résolu] - C++ - Programmation

Marsh Posté le 05-06-2008 à 11:56:58    

Bonjour,
 
j'avoue que la ca me dépasse totalement comme probleme.
j'ai le code simple suivant :
 

Code :
  1. // create face rectangle
  2. if (nbPointForPair){
  3.  pt1 = new point(tmp_x,tmp_y,tmp_zElevation);
  4.  nbPointForPair = false;
  5. }
  6. else {
  7.  // create point 2
  8.  pt2 = new point(tmp_x,tmp_y,tmp_zElevation);
  9.  // create rectangle
  10.  tmp_rectangle = new rectangle(pt1,pt2,new point(pt2->getX(),pt2->getY(),minZ),new point(pt1->getX(),pt1->getY(),minZ));
  11.  // add rectangle
  12.  listOpenGlFace->addrectangle(tmp_rectangle);
  13.  // set nbPoint for Pair at 0
  14.  nbPointForPair = true;
  15.  // create new rectangle
  16.  tmp_rectangle = new rectangle();
  17. }


 
par defaut nbPointForPair = true
donc il rentre dans mon premier if qui le fait devenir a false
au deuxieme tout de boucle j'ai  bien nbPointForPair = false mais il rentre dans le if a la place du else.
J'ai vérifié en mode debug et j'ai bien :

Code :
  1. nbPointForPair false bool


 
j'ai essaye avec des entiers au cas (en faisant une condition du style nbPointForPair=1 par exemple et j'ai le meme probleme)
si quelqu'un a une idee je suis preneur !
 
merci d'avance
 
apres avoir recréer un nouveau projet et tout réimporté ca fonctionne. bizarre ce visual expresse  :D


Message édité par lordankou le 10-06-2008 à 10:44:25
Reply

Marsh Posté le 05-06-2008 à 11:56:58   

Reply

Marsh Posté le 05-06-2008 à 13:26:12    

Ne vous prenez pas la tête avec des raccourcis qui vous perturbent et qui vont perturber tous les autres pauvres programmeurs qui vous succéderont.
Ecrivez

if (nbPointForPair == true){

Message cité 1 fois
Message édité par olivthill le 05-06-2008 à 13:27:11
Reply

Marsh Posté le 05-06-2008 à 13:48:39    

olivthill a écrit :

Ne vous prenez pas la tête avec des raccourcis qui vous perturbent et qui vont perturber tous les autres pauvres programmeurs qui vous succéderont.
Ecrivez

if (nbPointForPair == true){



foutaise.
 
Montre nous ta boucle.
 
(par ailleurs gaffe aux fuite de mémoire, genre tmp_rectangle)

Reply

Marsh Posté le 05-06-2008 à 13:51:31    

Y'a pas vraiment d'ambiguité sur les if avec des bool dedans.
 
Quel est le compilo, quelles sont les options de compilation ?
 
Si c'est VisualStudio, le debugger pas à pas part en sucette sur les valeurs des variables si c'est compilé en Release avec toutes les options d'optimisation.

Reply

Marsh Posté le 05-06-2008 à 13:56:12    

Maintenant rien à voir avec le bug, mais en D3D ou en OpenGl, instancier une classe style point3D et maintenir les dits points par un pointeur sur chaque point c'est gerbos.
 
il vaut mieux utiliser un max de vector<point3d>, avec un point3d qui est une classe/structure avec la position/normale/uv....
 
c'est plus trivial par la suite pour pousser tout ça dans un VB.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed