Bonjour j'ai un sujet de tp à realiser sur les graphes à l'aide de listes d'adjacence et j'ai un incident de segmentation dans mon code lorsque j'execute. Je vous montre mes structures dans mon en tete puis le code avec en gras la partie qui pose problème. Je vois vraiment pas d'où ca vient car pourtant j'estime mon code correct donc si vous voyez ce serait bien. Merci d'avance!
/*graphe_liste.h*/
#ifndef _GRAPHE_LISTE
#include<stdio.h>
#include<stdlib.h>
#define _GRAPHE_LISTE 1
#define BLANC 0
#define GRIS 1
#define NOIR 2
typedef int SID;
typedef struct{SID *p; int ptr;}PILE;
typedef struct maillon{
SID s;
struct maillon *suivant;
}maillon;
typedef struct{int n; maillon **listes;int *pred;
int *couleur;
int *d;
int *f; }GRAPHE;
void reservation_en_memoire(int n, GRAPHE *g);
void liberation_memoire(GRAPHE *g);
void cree_graphe_vide(GRAPHE *g);
void ajouter_connection(GRAPHE *g, SID i, SID j);
void retirer_connection(GRAPHE *g, SID i, SID j);
int est_adjacent(GRAPHE *g, SID i, SID j);
int recupere_sommet_adjacent(GRAPHE *g, SID i, SID *adj, int *nbadj);
void copie_graphe(GRAPHE *g1, GRAPHE *g2);
void lire_graphe(char *nom, GRAPHE *g);
void ecrit_graphe(GRAPHE *g, char *nom);
#endif
/*graphe_liste.c seulement la partie qui ne fonctionne pas*/
void parcours_en_profondeur_recursif(GRAPHE *g, SID s)
{
int i, n=g->n;int *adj,*nbadj;int date=0;int voisin;
for(i=0;i<n;i++)
g->couleur[i]=BLANC; recupere_sommet_adjacent(g,s,adj,nbadj);
if(g->couleur[s]==BLANC)
{
g->couleur[s]=GRIS; date=date+1;
g->d[s]=date; for(i=0;i<(*nbadj);i++)
{voisin=adj[i];
if(g->couleur[voisin]==BLANC)
g->pred[voisin]=s; parcours_en_profondeur_recursif(g,voisin);
}
g->couleur[s]=NOIR;
date=date+1;
g->f[s]=date;
}
}
PS:c'est la même erreur à chaque fois je pense on dirait qu'il n'accepte pas que je transforme le pointeur sur couleur en tableau pourtant c comme ca qu'on fait lol donc si quelqu'un a une idée.Merci encore