Segmentation fault sur un free

Résolu
Bonjour,

Programmant en C, j'ai un char* (contenu dans s->bases un pointeur) que je peux afficher avec "printf("%s", s->bases);" (donc données accessibles). Cependant, "free(s->bases);" me renvoie une Segmentation fault (core dumped).
D'où peut venir cette segmentation fault?

Merci d'avance

5 réponses

  1. Contributeur
    Ce que je souhaite c'est la définition de la variable pas son affectation.

    array_of_seqs->seqs[array_of_seqs->nb_seqs] est une structure contenant le champ bases. Mais le champ bases est définit en tant que :
    - char *bases ? Dans ce cas, je souhaite la ligne avec le malloc / calloc
    - char bases[X] ?

    Cdlt,
    0
    1. Bases était défini en tant que char *bases.

      Finalement, le problème a été corrigé par une connaissance.
      (Problème de modification du tableau, visiblement le free n'aimait pas..)
      Merci d'avoir répondu et d'avoir essayé de m'aider.
      0
  2. strcpy(array_of_seqs->seqs[array_of_seqs->nb_seqs]->bases,
    		     other_sequences[i]->bases);

    (ceci se trouve dans une boucle)
    other_sequence[i]->bases affectés à une chaine de caractères.
    0
    1. Contributeur
      Quel est le lien avec s->bases ?
      0
    2. S est le "renommage' de "array_of_seqs->seqs[i]" (appel de fonction)
      0
  3. Contributeur
    Je ne pense pas que ça soit en écriture sinon cela ne planterait pas.
    Pourrais-tu donner la ligne où tu as défini s->bases ?
    --

    Google is your friend
    0
    1. Elle doit aussi être en écriture vu que c'est le même programme, qui précédemment, affecte la valeur à mon pointeur :/.
      0
      1. Contributeur
        Tout simplement car votre pointeur pointe sur une zone en lecture seule. C'est à dire que la désallocation est interdite.
        1