Debuggalo... sto vedendo zelig e sinceramente non mi va di scrivere....
Almeno l'ordinamento fallo !!! (accidenti a me)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct studente {
char nome[16];
char cognome[16];
unsigned int matricola;
};
struct studente *add (char *nome,char *cognome, unsigned int matricola)
{
struct studente *new;
new=(struct studente *) malloc (sizeof(struct studente));
if (new)
{
strcpy (new->nome,nome);
strcpy (new->cognome,cognome);
new->matricola=matricola;
}
return (new);
}
void free_all (struct studente *pstudenti[],int n)
{
int i;
for (i=0;i<n;i++)
{
if (pstudenti[i])
free (pstudenti[i]);
}
}
void dsp (struct studente *pstudenti[],int n)
{
int i;
for (i=0;i<n;i++)
printf ("%16s %16s %3d\n",pstudenti[i]->nome,pstudenti[i]->cognome,pstudenti[i]->matricola);
}
int main ()
{
struct studente *pstudenti[50];
int n_studenti=0;
pstudenti[n_studenti++]=add ("Mario","Rossi",24);
pstudenti[n_studenti++]=add ("Giovanni","Verdi",40);
pstudenti[n_studenti++]=add ("Francesco","Bianchi",17);
dsp (pstudenti,n_studenti);
free_all (pstudenti,n_studenti);
return 0;
}