Con quel codice leggi un solo carattere (o meglio, puoi leggere solo un carattere).Originariamente inviato da Rudie
Quello che ho postato sopra funziona però vorrei prendere i dati dalla tastiera.
codice:void fill_student(int student_at_index) { char tmp; printf("Inserisci studente\n"); printf("Nome? "); scanf("%s", &tmp); strcpy(studenti[student_at_index].nome, tmp); studenti[student_at_index].cognome = "Caio"; studenti[student_at_index].matricola = student_at_index; studenti[student_at_index].laurea = "triennale"; studenti[student_at_index].indirizzo.via = "Roma"; studenti[student_at_index].indirizzo.numero = 20; studenti[student_at_index].indirizzo.cap = 20215; studenti[student_at_index].indirizzo.citta = "Milano"; }
Devi allocare un'array piu' grande (che deve comprendere il carattere terminatore), e devi allocarlo dinamicamente (con malloc e free) perchè altrimenti al ritorno da quella funzione l'array viene deallocato. E poi comunque attento perchè scanf considera come carattere di fine inserimento anche lo spazio, quindi dovresti fare una chiamata per inserire il nome ed una per il cognome.