Violation d'acc�s en lecture sur "list.push_back(obj)", list �tant une variable membre
Bonjour,
voila plusieurs jours que j'ai un soucie de Violation d'acc�s en lecture dans une std::list d'objet.
Code:
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 {};
}; |
Code:
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);
} |
Quand le programme arrive sur le push_back(), il sort "Exception lev�e*: violation d'acc�s en lecture. this a �t� 0x8."
Et m'am�ne sur le code de "list" indiquant que l'erreur se trouve sur cette ligne
Code:
1 2 3 4
|
void push_back(const _Ty& _Val) {
_Emplace(_Mypair._Myval2._Myhead, _Val); // ici est l'erreur
} |
sachant que :
_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.