Salve,

ho un problema relativo all'utilizzo dei Grafi nel linguaggio C.

Il programma che devo sviluppare mi serve per effettuare l'ordinamento topologico e quindi i passi sono:

1-Creazione Grafo con liste di Adiacenza
2-Implementazione della DFS e DFS_Visit
3-Ordinamento Topologico(Intrinseco nella DFS quando il nodo diventa Black)

codice:
typedef struct Node{ 
int nodeID;
 int color; // Colore del nodo nella visita di profonditā (DFS) 0=Bianco 1=Grigio 2=Nero 
int pi; //Tengo traccia del padre del Nodo 
int dTime; //Tempo di scoperta del Nodo 
int fTime; //Tempo trascorso per la scoperta di tutte le adiacenze 
struct Node *next; //Puntatore al prossimo nodo } Vertice; 

//Struttura del Grafo, tiene traccia dei Vertici totali e della Lista delle Adiacenze 
typedef struct Graph{ 
int num_vertici; //Tengo traccia del numero totale di vertici del Grafo 
Vertice **list_Adj; // Vettore con liste di Adiacenza 
} Graph;
Queste sono le strutture che mi porto dietro per la creazione del Grafo, una struttura per i Vertici e una Graph.

Il mio problema sovviene quando una volta inizializzato e riempito il grafo con determinati Archi, devo accedere tramite il Grafo agli elementi dei nodi per modificarli:
Passando il mio Grafo sempre per riferimento in modo tale da avere una modifica globale, nella funzione per la visita in profonditā devo inizializzare tutti i nodi del mio grafo e proseguo in questo modo:

codice:
for (i=0;i<G->num_vertici;i++) {
G->list_Adj[i]->color=0;
G->list_Adj[i]->pi=0;
}
Quando mando in esecuzione il programma questo ciclo o meglio quel passaggio da un puntatore ad un altro per arrivare all'elemento color e pi, manda in crash il programma!

Non riesco a capire perchč vā in crash quando cerco di accedere per mezzo di un puntatore di tipo Vertice agli elementi della prima struct(Vertice)!