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

C Discussion :

pourquoi 'segmentation fault'?


Sujet :

C

  1. #21
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Par défaut
    mon probleme est là apparament
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    *s1= lecture->d_name[strlen (lecture->d_name) - 1];
    *s = strrchr (s1,c);
    if( strcmp(s, s1)=0)


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    #include <stdlib.h>
     
    #include <stdio.h>
     
    #include <dirent.h>
     
    #include <sys/stat.h>
     
    #include<string.h>
     
    #define REP "programmationC"  
     
    typedef struct noeud
    {
    int nomfic;
    struct noeud *suiv;
    }T_noeud;
     
     
     
     
    int main (void)
    {
    struct dirent *lecture;
     
    /*j'ouvre mon repertoire*/
    DIR *rep = opendir(REP);
    /*si REP non vide*/
       if (rep != NULL)
     
    /*je boucle*/
       {
    while((lecture=readdir(rep)) != NULL)
         {
    /*je recupere un à un les fichier d'extention .c*/
         char *s[50];
         int c;
         char * s1[50];
         *s1= lecture->d_name[strlen (lecture->d_name) - 1];
         *s = strrchr (s1,c);
          if( strcmp(s, s1)=0)
         /*ch2 = lecture->d_name[strlen (lecture->d_name) - 1];
         if(extention(fic) =".c")*/
         printf("Fichier: %s\n", &lecture->d_name);
    /*je met un à un les noms des fichiers dans une liste chainée*/
         //ajouter(liste);
         }
     
    /*sinon erreur */
       }
       else
       { 
          perror (REP);
       }
    /* je ferme le repertoire */
    closedir(rep);
    return 1;
    }

  2. #22
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par thepinguin
    Bonsoir,
    Alors j'ai un probleme avec strrchr...c'est peutêtre banale mais je recupererai un '.' pour comparer avec une chane de taille differente '.c'?
    strrchr() permet de déterminer la position du dernier '.' du nom de fichier. Si il y a un point, l'adresse retournée est celle du point (sinon, c'est NULL, lire la doc). C'est donc le début de la chaine d'extension. Ensuite, tu compares cette chaine avec ".c" et c'est tout. Il suffit de donner cette adresse à strcmp().

    C'est sûr que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    *s1= lecture->d_name[strlen (lecture->d_name) - 1];
    *s = strrchr (s1,c);
    if( strcmp(s, s1)=0)
    ca le fait pas trop là... Il ne faut pas faire n'importe quoi, lire la doc des fonction, comprendre les paramètres, la valeur retournée, le comportement...

    Moi, je les connais les docs, et je sais ce qu'il faut faire. Mais je ne peux pas lire la doc à ta place. Je peux juste t'aider à la comprendre si tu as du mal...

  3. #23
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Par défaut
    Merci pour votre aide!
    je devrai lire plus attentivement la doc...mais j'avoue que ce n'est pas evident de saisir le coté pratique.

  4. #24
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par thepinguin
    je devrai lire plus attentivement la doc...mais j'avoue que ce n'est pas evident de saisir le coté pratique.
    Bienvenu au club des pragmatiques. Expérimente, ça mord pas... Le comportement des fonctions, il faut le mettre en oeuvre, le sentir 'vivre'...

  5. #25
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Par défaut
    just probleme, là c'est un projet que je dois rendre dans huit jours chrono...et je bloque pour des raisons certainenemt bêtes mais la je ommence à paniquer..est ce que je peux mettre une partie du programme sur ce site?j'avoue que c'est un peu long..mais ça me stresse parce que ça compile toujours faux certainement un probleme de pointeurs entre autre..

  6. #26
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par thepinguin
    est ce que je peux mettre une partie du programme sur ce site?
    Oui, en pièces jointes.

Discussions similaires

  1. Pourquoi ce code plante (segmentation fault)
    Par fcjunic dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2011, 13h05
  2. strcat -> segmentation fault mais pourquoi?
    Par kevin07 dans le forum Débuter
    Réponses: 3
    Dernier message: 24/07/2009, 16h48
  3. Segmentation fault : pourquoi ?
    Par Dan_coyle dans le forum C
    Réponses: 5
    Dernier message: 23/04/2006, 21h26
  4. Réponses: 13
    Dernier message: 13/07/2004, 16h41
  5. Comment contrer la "segmentation fault" ?
    Par guillaume_pfr dans le forum C
    Réponses: 15
    Dernier message: 08/08/2003, 14h43

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