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 :

Erreur lors de l allocation de Vector


Sujet :

SL & STL C++

  1. #1
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut Erreur lors de l allocation de Vector
    Bonjour

    Pour résumé, j'ai un vector d'objet contenant un vector egalement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    vector<MonObjet> tab;
     
    tab.resize (size1);
    for (int i=0;i<size;++i)
    {
    tab[i].vec.resize(size2); //erreur
    }
    Voila en resumé les lignes de mon code portant sur le vector. Le constructeur par defaut de MonObjet ne touche pas a la taille de vec.

    a l execution, il bloc ou j ai noté erreur et me retourne "violation d acces lors de la lecture de l'emplacement 0x000000000."

    Merci

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    à quoi correspond size ? (size1 OK, size2 OK aussi, mais size ?)

    tu ferais mieux d'utiliser un itérateur... ça t'éviterais des erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    vector<MonObjet> tab;
     
    tab.resize (size1);
    for (vector<MonObjet>::iterator it = tab.begin(); it != tab.end(); ++it)
    {
       it->vec.resize(size2); //plus d'erreur
    }
    Du plus pour avoir une erreur comme ça, tu dois manipuler de pointeurs à un moment
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    oups, size c'est size1 en fait.

    Utiliser des iterator compliquerais mon code (je me sers de i et de j pour d'autres acces)

    Oui j ai un seul autre pointeur dans mon code mais je ne fais ke des lectures dessus.

    Si Kelkun a une idee pour debugger ca

  4. #4
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par harsh
    Si Kelkun a une idee pour debugger ca
    Utiliser un debugger... ? Ca irait tellement plus vite.

    D'autant plus que ton code semble bien correct, et que l'erreur doit donc venir d'ailleurs.

  5. #5
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    sans avoir la signature de la class MonObjet..

    ainsi que son constructeur...

    de plus, il est possible que ta classe MonObjet ne soit pas copiable (c'est ce qui provoquerait ton message d'erreur, mais c'est étrange quand même...)

    le message d'erreur signifie que tu as tenté d'accèder à un pointeur NULL...

    donc soit tu as trouvé une erreur dans la STL (ce serait très étonnant) soit ta classe n'est pas pointers-safe... i.e. tu manipules des pointeurs de manière pas très propre à un moment où un autre
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

Discussions similaires

  1. Erreur lors d'allocations
    Par ledjlale dans le forum Qt
    Réponses: 2
    Dernier message: 26/07/2007, 10h16
  2. Erreur lors de l'execution d'un script jsp
    Par tuxor dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/08/2004, 12h35
  3. Erreur lors de la connexion
    Par mathll65 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 23/03/2004, 17h46
  4. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  5. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 09h30

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