Ciao Frag91, grazie per avermi risposto!
E' vero sono
molto alle prime armi ( e ci sto mettendo anche un sacco d'impegno). Non ho imparato a programmare con il Pascal (magari), le mie prime esperienze di programmazione risalgono al BASIC V2 del commodore 64 (quindi hai davanti uno smanettone preistorico

Il codice che hai pubblicato, purtroppo, dalla compilazione partorisce i seguenti errori :
Codice: Seleziona tutto
dharma@dharmanet:~/Desktop/SorgentiC/Esame$ gcc -ostrutt6 ./strutt6.c
./strutt6.c: In function ‘main’:
./strutt6.c:19: error: request for member ‘nome’ in something not a structure or union
./strutt6.c:22: error: request for member ‘telefono’ in something not a structure or union
./strutt6.c:28: error: request for member ‘nome’ in something not a structure or union
./strutt6.c:28: error: request for member ‘telefono’ in something not a structure or union
dharma@dharmanet:~/Desktop/SorgentiC/Esame$ gcc -ostrutt6 ./strutt6.c
./strutt6.c: In function ‘main’:
./strutt6.c:28: error: request for member ‘nome’ in something not a structure or union
./strutt6.c:28: error: request for member ‘telefono’ in something not a structure or union
dharma@dharmanet:~/Desktop/SorgentiC/Esame$ gcc -ostrutt6 ./strutt6.c
./strutt6.c: In function ‘main’:
./strutt6.c:28: error: request for member ‘nome’ in something not a structure or union
./strutt6.c:28: error: request for member ‘telefono’ in something not a structure or union
Sbaglio qualcosa nella compilazione?
Non mi è chiaro però come fai puntare i membri della struttura alla relativa componente del vettore (?)
Mi spiego meglio: in
assegni l'input all'indirizzo (al riferimento) di miapersona.nome, ma come indichi che si tratta del miapersona.nome della i-esima componente del vettore?
Ho provato a indicizzare i membri della struttura cosi:
Codice: Seleziona tutto
for ( i = 0; i < MAXV; i++)
{
printf ( "Inserisci il nome...");
scanf ( "%s", &miapersona[i].nome);
printf ("Inserisci il telefono...");
scanf ( "%s", &miapersona[i].telefono);
}
// Stampa il vettore di struttura
for ( i = 0; i < MAXV; i++)
{
printf ("NOME: %s ----> Telefono: %s\n", &miapersona[i].nome, &miapersona[i].telefono);
}
La compilazione avviene senza errori ma in run time i risltati sono disastrosi:
Codice: Seleziona tutto
dharma@dharmanet:~/Desktop/SorgentiC/Esame$ gcc -ostrutt6 ./strutt6.c
dharma@dharmanet:~/Desktop/SorgentiC/Esame$ ./strutt6
Inserisci il nome...Pippo
Inserisci il telefono...45
Inserisci il nome...Pluto
Inserisci il telefono...86
Inserisci il nome...Paperino
Inserisci il telefono...154
Inserisci il nome...Paperoga
Inserisci il telefono...1250
Inserisci il nome...GEO
Inserisci il telefono...89
NOME: Pipp154 ----> Telefono: 154
NOME: Pape1250GEO ----> Telefono: 1250GEO
NOME: GEO ----> Telefono: 89
E ti devo dire la verità quello cui non riesco a darmi pace è:
perchè il loop for non si interrompe come dovrebbe dopo il quarto (partendo da 0

) ciclo ma continua?
osserva l'output: vedi che Pippo 154 è diventato Pipp154 154... è tutto un problema di puntatori o sbaglio?
Come si fa?
Grazie, ciao
Perchè l'assegnazione al vettore struttura produce un vettore con tutte le componenti uguali???