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 (core dumped)


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut Erreur de segmentation (core dumped)
    bonjour voici un programme sur lequel je code actuellement mais je n'arrive pas a resoudre le pb de core dumped de l'aide svp
    j'ai mis en rouge la fonction ou se trouve l'erreur
    et en bleu la ligne concerne
    merci d'avance
    voici mon programme
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    #include <stdlib.h>
    #include <stdio.h>
    #include <assert.h>
    
    typedef struct elt *Pelt;
    typedef struct elt {
    	char* nam;
    	Pelt next;
    }elt;
    
    typedef struct liste{
    	Pelt first;
    	int size;
    }*liste;
    
    elt new_elt (char *n){
    	elt p;
    	p.nam = n;
    	p.next = NULL;
    	return p;
    }
    
    
    Pelt new_list(){ //fonction qui creer la liste simplement chaine
    	Pelt o=malloc(sizeof(elt));
    	o->nam = NULL;
    	o->next = NULL;
    	return o;
    }
    
    Pelt add_vid(Pelt lister, elt te){// ft qui ajout dans une liste vide
    	Pelt list = lister;
    	if(list!=NULL){
    		list->nam= te.nam;
    		list->next=NULL;
    	}
    	return list;
    }
    
    Pelt add_list_elt(Pelt list, elt e){
    	assert(list!=NULL);
    	Pelt temp = list;	
    	Pelt t  = malloc(sizeof(elt));
    	printf("--::%s---",e.nam);
    	while(temp!=NULL){
    		printf("-----2");
    		t=temp;
    		temp = t->next;
    	}
    	t->next->nam = e.nam; // l'erreur se trouve sur cette ligne
    	t->next->next = NULL;
    	return t;
    }
    
    Pelt add(Pelt list, elt e){
    	Pelt p =malloc(sizeof(elt));
    	if(list==NULL){
    		p=add_vid(list,e);
    	} else {
    		p=add_list_elt(list,e);
    	}
    	return p;
    }
    
    void affich_list(Pelt r){
    	Pelt e = malloc(sizeof(elt));
    	e = r;
    	while(e!=NULL){
    		printf("conten:%s\n",e->nam);
    		printf(" ////////// ");
    		e=e->next; 
    	}
    	if(e==NULL){
    		printf("\n fin de la liste \n");
    	}
    }
    
    int main(void) {
    	char* msg[]= {"bj","gtuio","df5f45","re","rt","ed","fr"};
    	//elt n =new_elt(msg[2]);
    	elt p =new_elt(msg[1]);
    	Pelt l = new_list();
    	printf("  -----main 0   ");
    	//add_vid(l,n);
    	printf(" -----main 1   ");
    	add_list_elt(l,p);
    	/**int a = 0;
    	while(a<7){
    		Pelt j=new_elt(msg[a]);
    		printf("\nll:: %s\n",j->nam);
    		add_elt(l,j);
    		affich_list(l);
    		free(j);
    		a++;
    	}**/
    	//printf("\n df::%s\n",msg[2]);
    	affich_list(l);
    	/**liste m =init_tete(p);
    	printf("affiche de la tete et la posit \n");
    	printf("%s  pos: %d",m.first->nam,m.size);**/
    	printf("-----");
    	return EXIT_SUCCESS;
    }

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il doit te manquer une variable. En ligne 47, tu leakes l'élément nouvellement alloué, et tu ne le mets nulle part.

    Mon conseil: Rajouter-toi une fonction qui retourne le dernier élément d'une liste, ça fera de la place dans ton add_list_elt().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    merci pour ta reponses medinoc
    que veux tu dire leakes??
    merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Abbréviation et verbisation de de memory leak, qui veut dire "fuite de mémoire" en anglais. C'est quand un programme "oublie" le seul pointeur vers une zone mémoire allouée dynamiquement, ce qui signifie que cette zone ne pourra jamais être désallouée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    s'il te plait medinoc
    peux tu etre plus clair par rapport a la variable qu'il manque car j'ai beau regarder mais je ne vois rien
    j'essaye des choses mais j'ai toujours le meme pb
    je te remercie d'avance

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Poste ta dernière tentative (juste le add_list_elt() et les fonctions qu'il appelle)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    merci medinoc de ton aide
    j'ai reussi a trouver l'erreur

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

Discussions similaires

  1. Erreur de segmentation (core dumped)
    Par benja507 dans le forum Débuter
    Réponses: 11
    Dernier message: 14/05/2008, 17h37
  2. Erreur de segmentation (core dumped)
    Par mansour67 dans le forum wxWidgets
    Réponses: 3
    Dernier message: 05/03/2008, 18h11
  3. Réponses: 6
    Dernier message: 14/01/2008, 16h47
  4. erreur de segmentation core dumped
    Par panganino dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2008, 12h45
  5. Réponses: 5
    Dernier message: 04/11/2007, 13h39

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