Scusate se rompo ancora le scatole su 'sta roba...
nel programma che devo fare io in pratica devo andare a modificare dinamicamente delle informazioni.
Ho una struttura del tipo:

struct lista
{int vertice;
struct lista *next;
};

struct nodo
{int nome_nodo;
int stato_nodo;
int num_vicini_liberi;
struct lista *nodi_vicini;
int insieme_appartenenza;
struct lista *nodi_in_insieme;
struct nodo *next;
};

e ho delle funzioni che sono: struct nodo *trova_nodo(int m); e aggiungi_nodo(int j, int i);

usandole in questo modo:
struct nodo *trova_nodo(int m) //trova il nodo all'inteno della lista dei nodi
{struct nodo *temp;
temp = primo_nodo;
if(temp->nome_nodo != m)
temp = temp->next;
else
return temp;
}

aggiungi_nodo(int j, int i)
{struct lista *temp;
struct nodo *temp1;
temp1 = trova_nodo(j);
temp = (struct lista *)malloc(sizeof(struct lista));
temp->vertice = i;
temp->next = temp1->nodi_in_insieme;
temp1->nodi_in_insieme = temp;
}

dove per "j" ho passato (da un'altra funzione) nodo1->nome_nodo
e per "i" ho passato nodo2->nome_nodo

volevo sapere: in questo modo, all'uscita della funzione "aggiungi_nodo" permane la modifica fatta nel nodo1, ovvero l'aggiunta del nome del secondo nodo nella lista??

Grazie mille, fino ad ora siete stati preziosissimi

P.S. la variabile "primo_nodo" usata nella funzione "trova_nodo" è una variabile globale