Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1523 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Probleme de pointeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de pointeur

n°1268608
rabzouze
Posté le 16-12-2005 à 16:58:30  profilanswer
 

J'essai d'ajouter dans ma liste un élément voila l'erreur que j'obtiens

Citation :

Segmentation fault


 
Appel de la fonction

Code :
  1. char aj;
  2. char *codeLa;
  3. printf("Veuillez saisir la lettre pour ajouter: " );
  4. scanf(" %c",&aj);
  5. printf("Veuillez saisir le code pour ajouter: " );
  6. scanf(" %s",codeLa);
  7. int ke;
  8.  ke=strlen(codeLa)+1;
  9.         char* cccode=(char*) malloc(sizeof(char)*ke);
  10.          strcpy(cccode, codeLa);
  11. Ajouter_en_Fin(aj,cccode,&l);


 
 
Déclarration de la fonction

Code :
  1. void Ajouter_en_Fin(char c,char *m,Liste *l)
  2. {
  3. Liste p=NULL;
  4. Liste q=NULL;
  5. if (estVide(*l)==vrai)
  6. {
  7.  p= (Liste) malloc(sizeof(Element));
  8.  p->c=c;
  9.  p->morse=malloc(strlen(m)+1);
  10.  strcpy(p->morse,m);
  11.  p->suiv=NULL;
  12.  *l=p;
  13. }
  14. else
  15. {
  16.  p=Precedent(c,*l);
  17.  q= (Liste) malloc(sizeof(Element));
  18.  q->c=c;
  19.  q->morse=malloc(strlen(m)+1);
  20.  strcpy(q->morse,m);
  21.  q->suiv=p->suiv;
  22.  p->suiv=q;
  23. }
  24. }

mood
Publicité
Posté le 16-12-2005 à 16:58:30  profilanswer
 

n°1268625
Elmoricq
Modérateur
Posté le 16-12-2005 à 17:07:42  profilanswer
 

Je n'ai pas regardé le reste, mais :
 

char *codeLa;
...
scanf(" %s",codeLa);


 
 
*codeLa n'a aucun espace de défini. Comme tu ne lui as affecté aucune valeur, il pointe potentiellement n'importe où en mémoire. Ton scanf() va donc tenter d'insérer n'importe où en mémoire.
Donc, segfault.
 
 
J'ajouterais que tu devrais utiliser fgetc() et fgets() à la place de tes scanf().

n°1268639
rabzouze
Posté le 16-12-2005 à 17:25:22  profilanswer
 

Mais one ne peut pas le resoudre avec scanf. C'est faisable je pense

n°1268644
Elmoricq
Modérateur
Posté le 16-12-2005 à 17:31:30  profilanswer
 

Rien compris à ta phrase : résoudre quoi ?

n°1268651
0liv
Posté le 16-12-2005 à 17:34:13  profilanswer
 

si tu peux garder ton scanf... mais ce qu'essayait de te dire Elmoricq c'est que tu dois faire un malloc sur ton pointeur CodeLa ;)
d'ailleurs tu voudrais faire un code vraiment propre, tu devrais initialiser tes variables à 0 et tes pointeurs à NULL


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Probleme de pointeur

 

Sujets relatifs
probleme de pointeurprobleme de pointeur
Problème avec pointeur dans une structureProblème de typage de pointeur de pointeur
[MFC/VC++] Problème de pointeurproblème de pointeur sur fonction
[C] problème de pointeurprobleme pointeur void alors qu'un cast de char* marche :\
probleme avec pointeur sur objetProblème de pointeur... (oui, je sais.)
Plus de sujets relatifs à : Probleme de pointeur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR