Gestione liste, dubbio su creazione primo elemento

di il
1 risposte

Gestione liste, dubbio su creazione primo elemento

Salve a tutti, sto sviluppando un programmino in c, la solita rubrica per imparare a lavorare con le liste dinamiche.
Ho un dubbio riguardo la creazione della lista: sotto ho riportato una funzione la cui funzione dovrebbe essere quella di aggiungere un contatto in rubrica e nel caso in cui la lista sia vuota creare l'elemento di testa.

Da premettere che nel main ho dichiarato il puntatore lista (contatto *rub = NULL;) posto a null che poi passo alla funzione sotto. Il problema scaturisce dal fatto che al primo inserimento, come vedete dal codice, rub dovrebbe prendere l'indirizzo del puntatore temp che viene creato, ma ciò non avviene ritrovandomi, a fine esecuzione della funzione, rub che punta ancora a NULL.

A cosa può essere dovuto il problema?
Grazie mille...

void aggiungiContatto(contatto *rub){
	contatto *temp, *tpun;
	tpun = rub;
	temp = (contatto *) malloc(sizeof(contatto));
	printf("\nNuovo Contatto:\n");
	printf("Nome > ");
	scanf("%s", temp->nome);
	printf("Cognome > ");
	scanf("%s", temp->cognome);
	printf("Telefono > ");
	scanf("%s", temp->numero);
	temp->next = NULL;
	if(rub == NULL)
		rub = temp;   \\teoricamente rub dovrebbe memorizzare l'indirizzo di temp, ma niente
	else {
		while(tpun->next != NULL)
			tpun = tpun->next;
		tpun->next = temp;
	}
}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte