Hola Juan, aquí te dejo ejemplo:
#include <stdlib.h>
#include <stdio.h>
typedef struct Salumno {
int edad;
char nombre[255];
float *nota;
int notas;
float media;
} Talumno;
void iniciar(Talumno **alumno) {
(*alumno) = (Talumno*)malloc(sizeof(alumno));
(*alumno)->nota = NULL;
(*alumno)->notas = 0;
(*alumno)->media = 0.0;
}
void addNota(Talumno *alumno, float nota) {
alumno->notas++;
alumno->nota = (float*)realloc(alumno->nota, alumno->notas*sizeof(float));
alumno->nota[alumno->notas-1] = nota;
}
float calcularMedia(Talumno *alumno) {
int i;
float suma=0;
for (i=0; i<alumno->notas; i++) {
suma += alumno->nota[i];
}
alumno->media = suma/alumno->notas;
return alumno->media;
}
int main() {
Talumno *alumno;
iniciar(&alumno);
sprintf(alumno->nombre, "Pedro");
addNota(alumno, 5.7);
addNota(alumno, 9);
addNota(alumno, 0.2);
calcularMedia(alumno);
printf("%s tiene una media de %.2f\n", alumno->nombre, alumno->media);
system("PAUSE");
return 0;
}
Si no entiendes algo, avisa