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 de segmentation avec strtok


Sujet :

C

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Erreur de segmentation avec strtok
    Bonjour, j'aimerais faire un strtok sur une chaine sauf que j'ai une erreur a l'execution Erreur de segmentation (core dumped)

    Et je ne sais pas pourquoi il ne fait pas le strtok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char *chaine="13*12";
      char *m=".*";
      char *token;
      int cpt=0;
      while((token=strtok(chaine,m))!=NULL){
        printf("token=%s \n",token);
        cpt++;
        chaine=NULL;
      }
    Merci

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Petit piège du C : char *chaine="13*12"; déclare une chaîne constante. La « variable » devrait d'ailleurs être déclarée const char *, voire const char *const. Tenter de modifier chaine produit ici un comportement indéterminé.

    Tu peux déclarer la chaîne non constante sur la pile comme ceci (avec une variable supplémentaire car tu modifies plus loin la valeur du pointeur chaine) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        char expr[]="13*12"; // tableau de char non constant de taille : 5 + 1 bytes
        char *chaine = expr; // pointeur sur le début de la chaîne stockée dans expr

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/01/2007, 14h11
  2. Probleme avec strtok
    Par Premium dans le forum C
    Réponses: 3
    Dernier message: 23/11/2005, 13h28
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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