Salve a tutti! Ho un problema con il seguente programma, ecco la traccia:
____
Scrivere un programma che dato un array di puntatori alla seguente struttura
struct studente {char *nome; char *cognome; int matricola;};
ricerchi un dato studente, utilizzando l’algoritmo di ricerca sequenziale.
____
In pratica ricevo un errore nonappena tento di caricare un nome nella prima cella dell'array... Ecco il codice che ho compilato fino ad ora:
Non imparerò mai a usare propriamente le stringhe!codice:#include <stdio.h> typedef struct { char *nome; char *cognome; int matricola; }studente; void caricamento_arr(studente arr[],int n); void visualizza_arr(studente arr[],int n); studente a[100]; int main () { int n, scelta; printf("PROGRAMMA PER LA RICERCA DI UNO STUDENTE\n\n\n"); printf("\nInserire il numero di studenti nella scuola: "); scanf("%d",&n); caricamento_arr(a,n); do { printf("\nDigitare:\n[0] Per uscire dal programma.\n[1] Per visualizzare gli alunni.\n[2] Per trovare un'alunno della scuola.\nDigitare la propria scelta: "); scanf("%d",&scelta); switch (scelta) { case 0: break; case 1: visualizza_arr(a,n); break; case 2: break; } } while (scelta != 0); return 0; } void caricamento_arr(studente arr[], int n) { int i; printf("\n"); for (i=0;i<n;i++) { printf("Inserire il nome dell'elemento in posizione [%d]: ", i); scanf("%s",arr[i].nome); printf("Inserire il cognome dell'elemento in posizione [%d]: ", i); scanf("%s",arr[i].cognome); printf("Inserire la matricola dell'elemento in posizione [%d]: ", i); scanf("%d",&arr[i].matricola); } } void visualizza_arr(studente arr[], int n) { int i; printf("\nVisualizzazione degli alunni:\n"); for (i=0;i<n;i++) printf("Elemento %d - Nome: %s. Cognome: %s. Matricola: %d.\n",i,a[i].nome,a[i].cognome,a[i].matricola); }Va beh, se qualcuno può chiarirmi i miei errori gliene sarei molto grato!
EDIT: Ovviamente l'errore è da cercare nella procedura caricamento_arr![]()

Va beh, se qualcuno può chiarirmi i miei errori gliene sarei molto grato! 
Rispondi quotando
