exeed | Bonjour a tous,
Aujourd'hui les arbres.
J'ai juste crée deux fonctions permettant de créer et d'ajouter un élément a un arbre existant. Ça compile correctement puis seg fault.
Avez vous une idée du problème ?
Code :
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- typedef struct brother * brother1;
- struct brother
- {
- const char *nom;
- brother1 frere_droite;
- brother1 fils_aine;
- };
- brother1 b_create(const char *str)
- {
- brother1 arbre;
- arbre = malloc(sizeof(*arbre));
- if( arbre == NULL )
- {
- fprintf(stderr,"Impossible d'allouer le noeud" );
- return NULL;
- }
- strcpy((arbre->nom),str);
- arbre->frere_droite = NULL;
- arbre->fils_aine = NULL;
- printf("Noeud %s crée.\n",arbre->nom);
- return arbre;
- }
- void ajouter_frere(brother1 filsdej, const char *nom_fils)
- {
- if(filsdej->frere_droite==NULL){
- printf("Ajout d'un frere à %s.\n",filsdej->nom);
- filsdej->frere_droite=b_create(nom_fils);
- }
- else{
- ajouter_frere(filsdej->frere_droite,nom_fils);
- }
- return;
- }
- void ajouter_fils(brother1 papa,const char *nom_fils)
- {
- if(papa->fils_aine==NULL)
- papa->fils_aine=b_create(nom_fils);
- else{
- ajouter_frere(papa->fils_aine,nom_fils);
- }
- return;
- }
- int main(int argc, char ** argv)
- {
- brother1 ji=b_create("Nouvel arbre" );
- return 0;
- }
|
Merci talentueux programmeurs ! |