[C++] Segmentation fault avec les vectors

Bonjour,

Pour un systeme de scripts je doit réaliser un compilateur. J'utilise pour cela une analyse 'descendante' pour avoir les noms des fonctions et autres renseignements utiles.

A un moment j'arrive a une fonction dans un classe (nommons la A) qui effectue ces opérations:

void recomputeOffset()
{
for(unsigned int t = 0; t < childs.size(); t++)
{
childs[t]->recomputeOffset();
}
// autres opérations
}

Avec childs un std::vector de pointeurs sur la classe A...
La ligne childs[t]->recomputeOffset() plante de temps en temps (plus précisement c'est la commande childs[t] qui plante) pour une raison inconnue. Les pointeurs sont crées avec new, et le seul delete possible est dans le destructeur de la classe...

C'est a rien y comprendre...

Je précise que je suis sous Code::Blocks avec GCC.

Quelqu'un a t il une idée ?
Merci d'avance.
Configuration: Windows Xp
Internet Explorer 7

2 réponses

  1. Merci pour ta réponse.
    En fait je viens de résoudre ce bug... pour en trouver un autre :

    J'ai un pointeur sur une classe contenant des attributs et des méthodes publiques (rien de privé dedans).
    Tout est défini dans le header donc les fonctions sont inline (mais aussi toutes virtual - sauf évidemment le cteur).

    Et avec ce pointeur je peut récuperer les attributs mais pas les méthodes...

    Quelqu'un a t il une idée?
    Merci d'avance.
    1. Modérateur
      A priori, il y a des chances que certains de tes childs n'aient pas été instanciés....