Media con punteros en C

#include <stdio.h>
#include <stdlib.h>
float media(int *pnums, int n);

int main()
{
 int i, nums, *enteros; 
 float valormedio;

 //Leemos cuántos enteros queremos leer
 printf("Indique cuántos enteros vas a introducir: ");
 scanf("%d",&nums);

 /*Reservamos espacio para el vector */
 // Tiene nums números de tipo int
 enteros=(int*)malloc(sizeof(int)*nums); 
 
 for (i=0;i<nums;i++)
 {
  printf("\nIntroduzca un numero: ");
  scanf("%d", enteros+i);
 }
 
 valormedio=media(enteros, nums);

 //Imprimimos el resultado
 printf("\nEl valor medio es %f. ", valormedio);
 
 
 //liberamos memoria
 free (enteros);
 return 0;
}

//Función que devuelve el valor medio de un vector de n enteros
float media(int *pnums, int n)
{
 float resultado=0;
 int i;
 for (i=0;i<n;i++)
  resultado=resultado+*(pnums+i);
 resultado=resultado/n;
 return (resultado);
}