Bonjour,
voila plusieurs jours que j'ai un soucie de Violation d'accès en lecture dans une std::list d'objet.
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
17
18 //Obj2.h #include <iostream> #include <list> class Obj2 { public: Obj2(); ~Obj2(); list<Obj1> getListObj1() { return listObj1; }; void SetListObj1(list<Obj1> liste); void Methode(); private: list<Obj1> listObj1 {}; };Quand le programme arrive sur le push_back(), il sort "Exception levée*: violation d'accès en lecture. this a été 0x8."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //Obj2.cpp #include "Obj2.h" void Obj2::Methode() { Obj1 obj1(param1, param2, param3); listObj1.push_back(obj1); }
Et m'amène sur le code de "list" indiquant que l'erreur se trouve sur cette ligne
sachant que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void push_back(const _Ty& _Val) { _Emplace(_Mypair._Myval2._Myhead, _Val); // ici est l'erreur }
_Mypair = allocator
est de type std::_Compressed_pair<std::allocator<std::_List_node<Obj1,void *>>,std::_List_val<std::_List_simple_types<Obj1>>,1>
_Mypair._Myval2 = {_Myhead=??? _Mysize=??? }
est de type std::_List_val<std::_List_simple_types<Obj1>>
_Val = {param1=param1 param2=param2 ...}
est de type const Obj1&
this = 0x0000000000000008 { size=??? }
est de type std::list<Obj1,std::allocator<Obj1>> *
Je crois comprendre que mon prog n'a pas accès au info de list<Obj1> listObj1 {} et ne connais donc pas sa taille et ne peux pas l'augmenter pour ajouter une valeur, je ne comprend pas pourquoi.
Merci de m'avoir lu,
bonne fin de journée.






Répondre avec citation


Partager