[C] erreur de segmentation

Fermé
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 26 sept. 2008 à 07:20
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 26 sept. 2008 à 08:55
bonjour à tous ,
j'ai un probleme dans ma fonction c'est qu'il ya une erreur de segmentation
j'ai une liste chainéé seq 2 et une autre autre liste seq2, je fais le parcours de ces 2 liste et voir si le dernier mot de seq==au 1er mot de seq, si c'est le cas , je concatene les 2 mots et le stocke dans une nouvelle liste chainée
merci de m'aider

void GenererNseq(Liste **seq, Liste **seq2)
{
    char *der;
    char *pre;
    char *buff;
    Liste *ss;
    Liste *p;
    Liste *q;
    pre=(char *)malloc(sizeof(char));
    der=(char *)malloc(sizeof(char));
    for(p=seq; p!=NULL; p=p->suivant)
    {
        for(q=seq2; q!=NULL; q=q->suivant)
        {
        der=GetLastWord(buff, p->mot);

            if (strcmp(pre, der)==0)
             {

               //creer une liste chainé qui contient la concatenation du pre et der

             }

    }
   }
    free(pre);
    free(der);





char* GetFirstWord(char* sentence, char* buffer)
{
  char* pch;

  strcpy(buffer, sentence);

  pch = strtok(buffer," ,.-");
  if (pch == NULL)
  {
    buffer[0] = 0;
    pch = buffer;
  }
  return pch;
}

char* GetLastWord(char* sentence, char* buffer)
{
  char* res;
  char* pch;

  strcpy(buffer, sentence);

  res = NULL;
  pch = strtok(buffer," ,.-");
  while (pch != NULL)
  {
    res = pch;
    pch = strtok (NULL, " ,.-");
  }

  if (res == NULL)
  {
    buffer[0] = 0;
    res = buffer;
  }
  return res;
}

}

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
26 sept. 2008 à 08:55
tu ne respecte pas les types, ça ne m'étonne pas qu'il y ai des erreur de segmentation.
seq est de type Liste**, p de type Liste* et tu assignes seq à p !
Il faut de la rigueur dans ce genre de programme.
-1