Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2284 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Destruction d'un vecteur de classes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Destruction d'un vecteur de classes

n°2199640
mirou13
Posté le 07-08-2013 à 18:19:31  profilanswer
 

Bonjour à tous  
 
J'ai une classe A qui a comme attribut :
std::vector<std::vecteur<B>> nom_attribut;
où B est une classe.
 
Le problème c'est que qu'on je fais la destruction de la classe A , l'erreur suivante survient:
 
Windows has triggered a breakpoint in project.exe.
 
This may be due to a corruption of the heap, which indicates a bug in project.exe or any of the DLLs it has loaded.
 
This may also be due to the user pressing F12 while project.exe has focus.
 
The output window may have more diagnostic information

 
En faisont un debug step by step j'ai vu que l'erreur se situe lors de la destrcution du vecteur <B>.
 
J'ai lu quelque part , que les instances de la classe B ne sont pas détruites et qu'il fallait faire une boucle avec un delete dedans. Mais je ne sais pas comment m'y prendre , je suis débutante avec le C++.
 
PS: Je suis sur windows XP et j'utilise visual studio 2010.
 
Merci beaucoup et bonne journée

mood
Publicité
Posté le 07-08-2013 à 18:19:31  profilanswer
 

n°2199645
theshockwa​ve
I work at a firm named Koslow
Posté le 07-08-2013 à 18:57:47  profilanswer
 

Ton problème est différent. Ce qui se passe là, c'est que tu es allé écrire dans un espace mémoire qui ne t'était pas alloué.
Ca peut être causé par un débordement de tableau, un pointeur non initialisé ou pas mal d'autres choses ...
 


---------------
last.fm
n°2199649
dreameddea​th
Posté le 07-08-2013 à 19:26:59  profilanswer
 

Donc le pb vient probablement d'un pointeur mal initialisé dans la classe B du type :

Code :
  1. class B{
  2.   public:
  3.     B(){
  4.        //Pas d'init de toto
  5.     }
  6.     ~B(){
  7.        delete toto;
  8.     }
  9.     private:
  10.        int *toto;
  11. }


 
ça peut faire un core au moment du destroy...

n°2199650
mirou13
Posté le 07-08-2013 à 19:30:16  profilanswer
 

Merci pour vos réponses rapides je vais voir ça et je vous tiendrai au courant

n°2199684
mirou13
Posté le 08-08-2013 à 06:02:49  profilanswer
 

Oui c'était bien ça , c'était des attributs non initialisés dans le constructeur de la classe B.  
Merci beaucoup


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Destruction d'un vecteur de classes

 

Sujets relatifs
acceder à un vecteur dans autre classe en c++Rotation de cube
vecteur de vecteur ou pointeur de pointeurChargement dynamique de classes
[Java/ANT] Chercher des classes d'un type précisfonction qui transforme une matrice en vecteur en langage C
Calcul de la norme d'un vecteur généré de façon aléatoire en langage Cimpossible de créer un vecteur de 32000 * 32000 short
Comment parcourir un vecteur dans un vecteur ?Vecteur.erase(iterator) et vecteur.clear() inactifs
Plus de sujets relatifs à : Destruction d'un vecteur de classes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR