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 :

erreur segmentation asctime()


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 22
    Points
    22
    Par défaut erreur segmentation asctime()
    Bonsoir,
    Je souhaite recréer la fonction asctime() de façon à ce que le résultat soit en français.

    Voilà mon code mais j'ai des erreurs de segmentation que je n'arrive pas à résoudre.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char *asctime2(const struct tm *tmptr) {
     
    	char *a = asctime(tmptr);
     
    	char *year;
    	strncpy(&year, a+1, 4);
     
            // j'ai pas fait le reste mais ça plante à ce niveau
    }
    Pourriez vous m'aider ? Merci

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncpy(&year, d+1, 4);
    Déclarer un pointeur n'alloue pas la zone mémoire, il faut donc que tu fasses :
    char *year = (char *)malloc(5); (ne pas oublier d'utiliser free après) ou char year[5];.

    Ensuite, year est déjà un char * et non un char, et tu dois aussi copier le '\0' à la fin de ta chaîne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strncpy(year, d+1, 5); // si et seulement si d[5] = '\0';
    //ou
    strncpy(year, d+1, 4);
    year[4] = '\0';
    Ensuite, où est défini d ?


    Quand tu ne connais pas une fonction, n'hésite pas à rechercher grâce à la fonction de recherche (tout en haut à droite) avec les mots clés "man ta_fonction".

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Merci, ça marche

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    As-tu bien inclus string.h?

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Non je l'avais pas fait, ça venait bien de là, merci à toi !

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Si ton problème est résolu, n'oublie pas de mettre ton sujet en

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ASE 12.5.3] - Erreur segment log - curunreservedpgs > size
    Par lsone dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 22/03/2007, 13h34
  2. Erreur segmentation
    Par hornov dans le forum C
    Réponses: 6
    Dernier message: 18/02/2007, 01h02
  3. chaine de caractères , erreur segmentation
    Par psgman113 dans le forum C
    Réponses: 17
    Dernier message: 19/01/2007, 17h51
  4. erreur segmentation java
    Par dj cediorko dans le forum Langage
    Réponses: 1
    Dernier message: 31/12/2006, 12h30
  5. [erreur] Segmentation fault
    Par fveysseire dans le forum C
    Réponses: 11
    Dernier message: 15/06/2006, 14h44

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