Intanto studia bene come usare la scanf:
http://www.cplusplus.com/reference/c.../cstdio/scanf/
visto che sbagli i flag di acquisizione richiedendo un float invece di una stringa e per di più assegnandolo a un char**.
E poi come confrontare stringhe ASCIIZ con strncmp:
http://www.cplusplus.com/reference/c...tring/strncmp/
Non l'ho testato, ma a occhio dovrebbe essere una cosa del genere.codice:// scanf("%f", &new_node->CONTATTO.nome); scanf("%s", new_node->CONTATTO.nome);
codice:PuntContatto_in_rubrica succ, prec, new_node; new_node=(PuntContatto_in_rubrica)malloc(sizeof (struct Contatto_in_rubrica)); if (new_node==NULL) { printf("Errore nell'allocazione della memoria. \n"); exit (1); }; // Annullo il puntatore al prossimo elemento. new_node->contattoSuccessivo = NULL; prec=NULL; // A che dovrebbe servire? I nuovi contatti si inseriscono alla fine. succ=L; printf("Inserire il NOME del contatto: \n"); scanf("%s", new_node->CONTATTO.nome); printf("Inserire il COGNOME del contatto: \n"); scanf("%s", new_node->CONTATTO.cognome); printf("Inserire il NUMERO del contatto: \n"); scanf("%s", new_node->CONTATTO.numero); printf("Inserire il NUMERO DI CASA del contatto: \n"); scanf("%s", new_node->CONTATTO.numero_casa); printf("Inserire l'INDIRIZZO EMAIL del contatto: \n"); scanf("%s", new_node->CONTATTO.email); printf("Inserire l'INDIRIZZO DI PAGINA WEB del contatto: \n"); scanf("%s", new_node->CONTATTO.indirizzo_web); if (succ == NULL) { // Questo è il primo della lista. // Basta restituire il nodo allocato. return new_node; } // Cerco l'ultimo elemento della lista. // Qui ci si arriva dalla seconda chiamata della funzione in poi. while (succ->contattoSuccessivo!=NULL) { succ = succ->contattoSuccessivo; } // succ adesso è l'ultimo elemento valido della lista. // succ->contattoSuccessivo può puntare al prossimo contatto. succ->contattoSuccessivo = new node; return succ; /* && strncmp(new_node->CONTATTO.nome, succ->CONTATTO.nome, MAX_carattere) > 1) { prec=succ; succ=succ->contattoSuccessivo; }; if (prec==NULL) { new_node->contattoSuccessivo = succ; printf("Il contatto è stato inserito in rubrica. \n"); return new_node; } else { new_node->contattoSuccessivo = succ; prec->contattoSuccessivo = new_node; printf("Il contatto è stato inserito in rubrica. \n"); return L; }; */

Rispondi quotando