IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

*b = *a et pourtant, ils ne sont plus egaux


Sujet :

C++

  1. #1
    Membre �prouv� Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Artisant logiciel
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par d�faut *b = *a et pourtant, ils ne sont plus egaux
    re-bonjours,

    je vient de passer toute mon apres midi sur un probleme :

    voici un pseudo code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    classe foo
    {
      int *bar();
      int *foobar;
    }
     
    int *foo::bar()
    {
       this->foobar = new(3);  
        return foobar
    }
     
     
    dans la fonction appelant cette classe :
    int *foobar2 = foo->bar();
    et, au bout d'un moment, lorsque je rentre de nouveau dans ma classe, a l'aide du debuggeur, je voit que mes deux pointeurs ne pointent plsu au meme endroit.

    le mieux, je pense, serait de faire tester ce bug, je fournit donc les sources, a compiler avec wx-devcpp

    si quelqu'un veut bien s'y coller, voici ce qu'il faut faire :

    ajouter un breakpoint aux lignes 46 et 116 de "mysocketserveur.cpp"
    ensuite, lancer le debug, cliquer sur le bouton "serveur", puis lancer une deuxieme instance et cliquer sur le bouton client. (dans cet ordre)

    les varialbes a surveiller sont :
    socket
    sock
    sockBaseImg

    elles devraient toujours etre identiques...
    peu apres la ligne 116 (apres un envoie de trame sur le reseau), l'adresse de sock change...


    voici les sources :

    http://membres.lycos.fr/zulG/prog/plizHelp.zip

    edit : arf, ca passe pas, je les envoie par mail, si une bonne ame se fait connaitre (par mp le mail, soyez pas fou!)

    ps : dsl d'etre balourd

  2. #2
    CGi
    CGi est d�connect�
    Expert confirm�
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    D�tails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par d�faut
    Ton code compile ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    classe foo
    {
      int *bar();
      int *foobar;
    };
     
    int *foo::bar()
    {
       this->foobar = new int(3);  
        return foobar;
    }

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    int *foobar2 = foo->bar();
    Et la tu appelle directement une fonction de la classe sans avoir cr�e un objet.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)

  3. #3
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Le mieux, ce serait d'�lagguer le code pour ne laisser que la partie qui pose un probl�me. Ca permet de savoir ce qui cause le probl�me.
    C'est le cas typique o� des tests unitaires pr�liminaires permettraient de v�rifier qu'un code fait bien ce qu'on lui demande de faire. De plus, en testant fr�quemment, on sait ce qu'on a chang� lorsqu'un bug appara�t

    Tu n'appelerais pas 2 fois bar() par hasard ?

  4. #4
    CGi
    CGi est d�connect�
    Expert confirm�
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    D�tails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par d�faut
    De plus il doit pas �tre facile d'appeler :
    foo::bar()
    en dehors de la classe, elle est d�clar�e private.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)

  5. #5
    Membre �prouv� Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Artisant logiciel
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par d�faut
    je voulaiut mettrer juste un exemple leger, mais c'est vrai qu'en le truffant de bug...

    je ne voualit pas reduire mon appli a un exemple mini, car, je pense que c'est wxWidget qui modifie ma var :

    son gestionnnaire d'event est dans un objet A, qui appele un objet B.

    suite a une refonte du code non finie, A et B possedent tous les deux un pointeur sur le meme objet.


    si quelqu'un veut essayer avec les sources :
    http://membres.lycos.fr/zulG/Prog.htm
    il suit le lien...

    sinon, je posterait un bout de code ce matin.

  6. #6
    Membre �prouv� Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Artisant logiciel
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par d�faut
    rah!!!!
    je devientdingue!!!!!!

    j'ai trouv� mon erreure :
    j'ecrivait dansd un string non initialis� :'(


    1 jours 1/2 la dessus , je deleste (et je deteste)


    dsl :'(

  7. #7
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Pas de pb, �a arrive � tout le monde

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. des recordsets qui ne sont plus accept�s
    Par boss_gama dans le forum ASP
    R�ponses: 2
    Dernier message: 02/08/2006, 09h51
  2. R�ponses: 6
    Dernier message: 26/06/2006, 15h52
  3. R�ponses: 9
    Dernier message: 29/10/2005, 20h11
  4. dans quels cas les pointeur sont plus rapides ?
    Par 180degr�s dans le forum C++
    R�ponses: 12
    Dernier message: 20/08/2005, 23h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo