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

SL & STL C++ Discussion :

[STL] parcours d'un vecteur


Sujet :

SL & STL C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [STL] parcours d'un vecteur
    j ai une planté (violation d'acces) dans la boucle de cette fonction (sur le if) et je ne comprend pas comment c'est possible.

    Il me semble que les verifications d usage sont faites...
    Auriez vous une idée ?
    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
    bool CBatchController::FindAuxFctValue(int _iBRFValue,std::vector<tstMDIValue>::const_iterator &_iterator)
    {
    	m_pCSAuxFunctions->Lock();
    	for(_iterator=m_MDIAuxFunctionsAvailable.begin();_iterator!=m_MDIAuxFunctionsAvailable.end();_iterator++)
    	{		
    		if(_iterator->iBRFFunctionValue == _iBRFValue)
    		{
    			m_pCSAuxFunctions->Unlock();
    			return true;
    		}
    	}	
    	_iterator=m_MDIAuxFunctionsAvailable.end();
    	m_pCSAuxFunctions->Unlock();
    	return false;
    }
    erreur : Exception non gérée à 0x0040c03d dans NCMProcess.exe:0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x015e9008.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Ça n'a pas vraiment l'air d'être une map ton truc...

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Citation Envoyé par loufoque
    Ça n'a pas vraiment l'air d'être une map ton truc...
    euh, c'est un vector en faite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct tstMDIValue{
    	int	iBRFFunctionValue;
    	int	iMValue;
    	T_AUXFCT	ucNCMFunctionValue;
    	unsigned int uiExecutionTime;
    	CString		sDescription;
    };
    std::vector<tstMDIValue> m_MDIAuxFunctionsAvailable;

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Cela me semble correct.
    Essai de faire un exemple minimal réduit, sur un seul fichier, qui compile et qui montre le problème.

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    pas trop possible malheureusement...
    le pire c est que le bug n'est pas reproductible toute les fois. avec les meme données ca marche pas 1x sur 10.

    suis tres perplexe et conscient que ca va etre dur de m aider

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Peut-être que le problème ne vient pas de cette boucle, mais d'une autre partie du programme dans laquelle tu écrases un élément de ce vecteur.

    Déjà, pour débugger, tu pourrais vérifier à chaque itération que l'élément pointé par ton itérateur est valide, et mettre un point d'arrêt s'il ne l'est pas. Ca pourrait donner une piste.

  7. #7
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Citation Envoyé par ZaaN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		if(_iterator->iBRFFunctionValue == _iBRFValue)
    		{
    			m_pCSAuxFunctions->Unlock();
    			return true;
    		}
    }
    Essais peut etre quelque chose comme ca:

    if((*_iterator).iBRFFunctionValue == _iBRFValue)

    dans mes iterateurs de vecteurs je faisais des appels de ce genre (de mémoire )

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et en utilisant un débogueur ?

    Essais peut etre quelque chose comme ca:

    if((*_iterator).iBRFFunctionValue == _iBRFValue)
    (*x). et x->, c'est strictement la même chose...

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

Discussions similaires

  1. Optimiser le temps de parcours d'un vecteur
    Par rtsKyo dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 15/03/2012, 11h55
  2. Problème de parcours d'un vecteur
    Par teckto dans le forum MATLAB
    Réponses: 3
    Dernier message: 30/04/2008, 22h11
  3. Réponses: 8
    Dernier message: 29/01/2008, 22h22
  4. [STL] Parcours de maps de maps de char*
    Par FenX. dans le forum SL & STL
    Réponses: 19
    Dernier message: 17/07/2007, 09h50
  5. [Débutante] Problème de parcours d'un vecteur
    Par sab_etudianteBTS dans le forum Langage
    Réponses: 4
    Dernier message: 20/05/2007, 14h29

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