Salve,
vorrei realizzare un programma che permetta di registrare tramite una struct il nome e cognome e poi mi stampa il risultato. Questo lo vorrei fare tramite funzioni. La prima parte per l'inserimento sembra che funzioni correttamente, ma quando deve procedere con la stampa, il programma si va in errore. Se non inserisco dei nuovi iscritti, i dati della struct gia' caricati, si vedono correttamente. Dove sbaglio?...grazie
codice:
#include <stdio.h>
struct persona{
char *nome;
char *cognome;
};
struct persona alunni;
struct persona *alunniptr;
void inserimento (struct persona *alunni);
void stampa (struct persona *alunni);
int conta=1; // CONTA I NUOVI ISCRITTI, PARTE DA 1 PERCHE' E'
// INIZIALIZZATO SOLO CON UNO
int main (void){
alunni.nome="DAVIDE";
alunni.cognome="ROSSI";
inserimento (&alunni);
stampa (&alunni);
return 0;
}
void inserimento (struct persona *allievo ){
char risp;
int i;
for(i=0;i<30;i++)
{
printf("Vuoi inserire elementi nella lista? (s/n): ");
scanf("%c",&risp);
if(risp=='s' || risp=='S')
{
printf("\nNome allievo: \n");
scanf("%s",&allievo[i].nome);
printf("\n Cognome allievo: ");
scanf("%s",&allievo[i].cognome);
conta=conta++; //CONTA I NUOVI ISCRITTI
}
else break;
while(getchar()!='\n') ;
}
}
void stampa (struct persona *allievo){
int y;
printf("\nstampa matrice\n");
for (y=0;y<conta;y++){
printf("%s ",allievo[y].nome);
printf("%s\n",allievo[y].cognome);
}
}