Bonjour a tous, je ne suis pas une lumière en C et je rencontre un problème pour un petit projet.
J'ai 3 fichiers :

structures.h :
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
 
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
 
 
/* Un graphe ne dispose que d'un seul champ, un pointeur vers le Noeud qui sera le Noeud de "Depart" */
 
typedef struct Graphe{
 
  Noeud *Depart;
  int Nombre_de_noeuds;
 
}*Graphe;
 
/* Un Noeud possede 2 tableaux d'arcs, un tableau pour les arcs entrants et un pour les arcs sortants */
/* Grace a cela nous pourrons nous deplacer dans le graphe d'avant en arriere ou d'arriere en avant */
 
typedef struct Noeud{
 
  char *Nom;
  char *Proprietes;
  Arc *Arcs_entrants;
  int Nombre_d_arcs_entrants;
  Arc *Arcs_sortants;
  int Nombre_d_arcs_sortants;
 
}*Noeud;
 
/* Un arc a un Noeud source, un Noeud destination et enfin une action elementaire */
 
struct Arcs{
 
  Noeud *Source;
  Noeud *Destination;
  char *Action;
 
};
construction_graphe.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#include "structures.h"
 
Graphe Creer_Graphe();
 
Graphe Creer_Noeud(char *prop, Graphe g);
 
Graphe Creer_Arc(char* action, Noeud source, Noeud dest, Graphe g);
et enfin construction_graphe.c :
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
 
#include "construction_graphe.h"
 
 
/* Fonction : Creer_Graphe                                                               */
/* Succes : Creation d'un nouveau Graphe                                                 */
/* Succes : Retourne le Graphe                                                           */
/* Echec : Retourne NULL                                                                 */
/* Parametre(s) : Aucun(s)                                                               */ 
 
 
Graphe Creer_Graphe(){
 
  Graphe g;
 
  g = malloc(sizeof(struct Graphe));
 
  if( g == NULL)
    {
      perror("Erreur allocation memoire du graphe \n");
      return NULL;
    }
 
  g->Nombre_de_noeuds = 0;
 
  return g;
}
 
 
/* Fonction : Creer_Noeud                                                                */
/* Succes : Creation d'un nouveau noeud qui n'est pas encore raccordé au reste du graphe */
/* Succes : Retourne le Graphe                                                           */
/* Echec : Retourne NULL                                                                 */
/* Parametre(s) : Une chaine de caractères représentant les diverses propriétés du Noeud */
/* Parametre(s) : Le graphe auquel va être ajouté le Noeud                               */ 
 
Graphe Creer_Noeud(char* prop, Graphe g){
 
  Noeud nouveau_noeud;
 
  nouveau_noeud = malloc(sizeof(struct Noeud));
 
  if(nouveau_noeud == NULL)
    {
      perror("Erreur allocation memoire du nouveau noeud \n");
      return NULL;
    }
 
  g->Nombre_de_noeuds ++;
 
  return g;
}
 
Graphe Creer_Arc(char* action, Noeud source, Noeud dest, Graphe g){
 
  Arc nouvel_arc;
 
  nouvel_arc = malloc(sizeof(struct Arc));
 
  if (nouvel_arc == NULL)
    {
      perror("Erreur allocation memoire du nouvel arc \n");
      return NULL;
    }
 
  *(nouvel_arc.Source) = source;
  *(nouvel_arc.Destination) = dest;
 
 
  /* MAJ de l'espace memoire nécessaire pour stocker le nouvel arc dans les noeuds */
 
  source->Arcs_sortants = realloc(source->Arcs_sortants, sizeof(struct Arc) * (source->Nombre_d_arcs_sortants + 1));
 
  if (source->Arcs_sortants == NULL)
    {
      perror("Erreur reallocation memoire du nouvel arc dans le noeud source \n");
      return NULL;
    }
 
  source->Nombre_d_arcs_sortants ++;
 
 
  dest->Arcs_entrants = realloc(dest->Arcs_entrants, sizeof(struct Arc) * (dest->Nombre_d_arcs_entrants + 1));
 
  if (dest->Arcs_entrants == NULL)
    {
      perror("Erreur reallocation memoire du nouvel arc dans le noeud dest \n");
      return NULL;
    }
 
  dest->Nombre_d_arcs_entrants ++;
 
  /* Fin de la MAJ */
 
  /* Raccordement des noeuds grace a l'arc */
 
  (source->Arcs_sortants)[source->Nombre_d_arcs_sortants] = nouvel_arc;
  (dest->Arcs_entrants)[dest->Nombre_d_arcs_entrants] = nouvel_arc;
 
  /* Fin du raccordement */
 
  return g;
}
Je suis sous Unix et je compile avec gcc .

En compilant avec gcc -ansi -pedantic -Wall -Werror , j'obtiens plein plein d'erreurs et je ne vois pas d'ou elles peuvent venir...

Excusez moi si mon problème est évident mais je connais pas trés bien le C

Peut être que ca vient de mes include non?

En espérant que quelqu'un puisse m'aider, merci d'avance (et désolé si le code est un peu long )