Ok, grazie!
Ora l'unico problema è che non inizializzando a NULL i nuovi nodi allocati, ho il problema nel fare il confronto:
codice:
if (G->dizionario[u] != NULL && G->dizionario[v] != NULL )
Praticamente entra in questo if anche quando alloco memoria ma in realtà gli indirizzi puntanto a qualcosa di insensato e questo non mi và bene.. 
Sono costretto a fare una cosa del tipo:
codice:
NODO **NewArchi;
NewArchi = (NODO**)calloc(STEP_NODO, sizeof(NODO));
G->archi = (NODO**)realloc(NewArchi, G->N_Max+STEP_NODO);
Andrebbe bene così?