Sono uno studente di informatica [scuola superiore] e qualche giorno fa il professore ci ha accennato le strutture. Ho provato ad applicarle a programmi semplici, con successo. In questo programma ho provato a inserirlo in diverse funzioni, fallendo. Il programma dovrebbe farmi inserire il numero di alunni [definendo la dimensione dell'array di strutture], i dati degli alunni e fare le medie dei voti di questi. Il programma mi da errore su 'alunno' definendolo undeclared. Ho studiato le strutture per conto mio, quindi potrebbero esserci errori di sintassi, più che di codice. Spero qualcuno possa darmi una mano, grazie.codice:#include <cstdlib> #include <iostream> using namespace std; void informazioni(int n,alunno*studente); //funzione per l'inserimento di nome, cognome e materia float *creavett(int n,alunno*studente); //funzione per creare un array dinamico che conterrà tutti i voti di una materia void *media(int n,float mid[],int k,alunno*studente); //funzione per inserire la media dei voti dall'array alla struttura void show(int n, alunno*studente); //funzione per scansionare la struttura typedef struct studente{ //struttura string nome; string cognome; string materia; float media; }dati,*alunno; int main(int argc, char *argv[]){ int n=0; //variabile per la dimensione degli array float *voti; //array che conterrà i voti float *mid; //array che conterrà la somma dei voti, per fare poi la media int k=0; //variabile contatore cout<<"Inserire il numero di alunni: "; //inserimento dimensione array cin>>n; alunno alunno=new dati[n]; //creazione dinamica dell'array di strutture mid=new float[n]; //creazione dinamica dell'array delle medie informazioni(n,studente); voti=creavett(n,studente); for(int i=0;i<n;i++){ mid[i]+=voti[i]; //somma dei voti e aumento della variabile contatore k++; } media(n,mid,k,studente); show(n,studente); system("PAUSE"); return EXIT_SUCCESS; } void informazioni(int n,alunno*studente){ for(int i=0;i<n;i++){ cout<<"Inserire il cognome del "<<i+1<<"o alunno: "; cin>>alunno[i].cognome; cout<<"Inserire il suo nome: "; //caricamento struttura cin>>alunno[i].nome; cout<<"Inserire la materia: "; cin>>alunno[i].materia; } } float *creavett(int n,alunno*studente){ float *voti; voti=new float[n]; for(int i=0;i<n;i++){ //creazione dimanica dell'array e suo caricamento cout<<"Inserire il "<<i+1<<"o voto: "; cin>>voti[i]; } return voti; } void *media(int n,float mid[],int k,alunno*studente){ for(int i=0;i<n;i++) alunno[i].media=mid[i]/k; } void show(int n, alunno*studente){ for(int i=0;i<n;i++){ cout<<"Alunno: "<<alunno[i].cognome<<" "<<alunno[i].nome<<endl; for(int j=0;j<n;j++){ cout<<"Materia: "<<alunno[i].materia<<" Media: "<<alunno[i].media[j]<<endl; } } }