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

Violation d'accès en lecture sur "list.push_back(obj)", list étant une variable membre


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    oui
    Inscrit en
    Novembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : oui
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2022
    Messages : 2
    Par défaut 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 : 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 {};
     
    };
    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);
    }
    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 : 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 
        }
    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.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    D'après l'erreur, il semble que c'est le Obj2 dont on appelle la Methode() qui est invalide. Qu'y a-t-il au moment de l'appel à Methode()? On dirait que tu fais quelque chose qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       Obj2*  ptr = nullptr;
       ptr->Methode();

  3. #3
    Candidat au Club
    Homme Profil pro
    oui
    Inscrit en
    Novembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : oui
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2022
    Messages : 2
    Par défaut
    Merci, effectivement le problème venait de là, grâce à vos explications j'ai compris mon erreur, tout fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Monitoring - Nombre d'acces en lecture sur une table
    Par hazou dans le forum Administration et Installation
    Réponses: 3
    Dernier message: 13/11/2012, 15h45
  2. [WSS3] Attribution accès en Lecture sur site père
    Par linati dans le forum Développement Sharepoint
    Réponses: 7
    Dernier message: 26/09/2011, 09h53
  3. [SP-2007] Droits accès en Lecture fichier / écriture liste
    Par relhariri dans le forum Développement Sharepoint
    Réponses: 8
    Dernier message: 11/05/2011, 11h41
  4. Violation d'accès en lecture écriture
    Par 3Fred9 dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2010, 14h36
  5. Réponses: 2
    Dernier message: 16/05/2006, 14h17

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