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

Langage C++ Discussion :

Erreur incompréhensible pointeur


Sujet :

Langage C++

  1. #21
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 055
    Points
    33 055
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    puisque tu es sous VS, utilise un data-breakpoint et tu seras fixé.

  2. #22
    Invité
    Invité(e)
    Par défaut
    on peut pas avec le code fournit savoir d'où vient le probleme.
    1) Déjà parce que _resolutionExacte, on sait pas si c'est un fils de Relocation où un Relocation. et tout les autres champs de Fenetre, on sait pas c'est quoi leur type.

    Donc du coup, ca se fait _resolutionExacte ben il définit setDonnées, dont on ne connait pas l'implémentation, et il fait pointer _donnees vers une zone pourrie.
    L'appelant suivant qui est de fait de type Relocation (puisque tu as montré le code et que c'est dans Relocation::setDonnees) ben il a un comportement aléatoire parce que le pointeur est invalide.

    2) On ne sait pas non plus ce que fait Donnees::operator= ca se fait ben il modifie l'attribut de l'instance passée en paramètre (bon j'en doute quand même)

  3. #23
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Je parie qu'il y a un problème dans Donnees::operator=.
    Sinon, ça peut aussi être le debugger qui déconne si tu es sous un Windows 64 bits et que ton programme est en 32 bits.

    [Edit : La discussion ayant suivie cette remarque a été déplacée ]

  4. #24
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    La méthode 'ouvrirInstance' est un slot appelée lors de l'appuie sur un boutton. Mes objets non rien avoir entre eux. Je veux juste les faire pointer sur l'objet 'Donnees' qui contient toutes les données de mon pb.

    Je n'ai aucun constructeur de recopie ou de surcharge de =.
    C'est juste une copie d'un pointeur.

    PS : pour l'instant je met un attribut 'int a' inutile en première position

  5. #25
    Membre régulier Avatar de GrosLapin
    Homme Profil pro
    Ingénieur et Etudiant
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur et Etudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 85
    Points
    85
    Par défaut
    @Médinoc : J'avais pensé à ça aussi, mais il passe pas un pointeur et il me semble pas qu'on puisse redéfinir l'opérateur des types de bases (dont le pointeur)

  6. #26
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PS : pour l'instant je met un attribut 'int a' inutile en première position
    Mets un buffer d'un méga
    Plus sérieusement, si c'est comme par hasard le premier attribut de ta classe, c'est qu'une autre partie de ton code fait un dépassement en écrivant (pas trop dur de vérifier si c'est un artefact de debug ou pas: simplement logger la valeur de l'attribut avant et après, et voir si tu as le changement en exécutant normalement hors débugger) Mettre un attribut bidon ne te protègera de cette erreur que pour mieux faire boum une autre fois à la suite d'un autre changement apparemment anodin...
    Et si tu avais un recouvrement pirate entre l'emplacement du pointeur que tu initialises et la plage adressée par ton pointeur? D'où mes questions suivantes:
    1) tu penses la valeur de l'attribut "après" affectation de pointeur invalide, mais est tu sur que la valeur initiale l'est?
    2) est tu sûr de la validité de ton pointeur inDonnee, qui semble pointer sur ta classe utilisatrice au lieu de vraiement pointer sur tes données?
    EDIT:
    3) à l'inverse, es-tu sûr de ton pointeur pour la classe Relocation?

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/10/2006, 13h19
  2. [2.1][jdk1.3][Junit] Erreur incompréhensible!
    Par Sniper37 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 29/04/2005, 19h03
  3. Erreur incompréhensible à la ligne 200 (sur 190 ?!)
    Par transistor49 dans le forum Qt
    Réponses: 3
    Dernier message: 22/03/2005, 23h09
  4. [Fichiers] Erreur incompréhensible
    Par Clorish dans le forum Langage
    Réponses: 5
    Dernier message: 14/12/2004, 17h18
  5. [JSP] Erreur incompréhensible
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/09/2003, 16h37

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