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;
        }
     }
}
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.