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++/CLI Discussion :

double free or corruption (fasttop) sur un vecteur


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut double free or corruption (fasttop) sur un vecteur
    Bonjour,

    J'ai rencontré cette fameuse erreur en manipulant un vecteur dans mon code... et là chose étonnante c'est que je n'ai pas manipulé explicitement la mémoire avec un free ou avec un destructeur etc... d'une manière incorrecte, et pourtant ce sont les principales causes pour cette erreur si j'ai bien suivi.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    vector<CDart> fonction(CDart* d){
        vector<CDart> vect;   
        CDart* dartCourante = d;
        vect.push_back(*dartCourante);
       do{
            vect.push_back(*dartCourante);
            dartCourante = dartCourante->next();
        }while(isEqual(dartCourante->next(), d->next() == false); 
     
        vect.push_back(*d);
     
        return vect;
    }
    L'objectif ici est de stocker tous les objets de type CDart dans un vecteur en utilisant la fonction next de la classe CDart. (Dans la pratique ces objets sont liés entre eux par une liste chainée). A la fin je réajoute l'élément de début (ça m'est utile par la suite, car j'y ajouterai plusieurs listes chainées consécutives et la répétition de cet élément me servira de point de repère dans mon vecteur).

    Après des tests pour voir ce qui pose problème, je m'aperçois que c'est l'ultime ajout dans le vecteur qui est en défaut... mais pas systématiquement.

    Je ne vois vraiment pas en quoi j'ai tripatouillé la mémoire de manière incorrecte... quelqu'un peut m'aider ?

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    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 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Ceci n'est pas du C++/CLI, et il me semble que tu a multiposté ta question, ce qui est interdit.

  3. #3
    Membre actif
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    70
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 70
    Points : 204
    Points
    204
    Par défaut
    si d est NULL ou non initialisé lors de l'appel cela peut provoquer une erreur

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/05/2019, 18h27
  2. double free or corruption (fasttop) sur un vecteur
    Par fred94190 dans le forum Débuter
    Réponses: 13
    Dernier message: 31/05/2013, 00h15
  3. [SFML] Image double free or corruption
    Par Belegkarnil dans le forum SFML
    Réponses: 4
    Dernier message: 23/08/2007, 17h56
  4. erreur glibc detected double free or corruption.
    Par Screwt-K dans le forum C++
    Réponses: 1
    Dernier message: 02/07/2007, 17h46
  5. Problème d'éxécution: double free or corruption
    Par ciol_tebroc dans le forum C++
    Réponses: 3
    Dernier message: 17/05/2006, 20h44

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