Ok, ho modificato il codice in questo modo (ed ho messo dirgraph_t = NULL nel main) ed ora non mi dà più nessun tipo di warning, ma il programma va in crash comunque quando provo a creare il grafo:

codice:
dirgraph_t dirgraph_create(int n) {

    int i, j;
    dirgraph_t graph = NULL;

    graph->adj = (int**)malloc(n*sizeof(int *)); //allocazione array di n puntatori a righe
    for(i=0; i<n; i++) //allocazione riga per ogni puntatore dell'array
        graph->adj[i] = (int *)malloc(n*sizeof(int));
    graph->n = n;

    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            graph->adj[i][j] = 0;
    }

    return graph;
}