* indica que el parámetro recibido es un puntero al tipo de dato indicado.
La función malloc te permite "reservar memoria" de manera dinámica (en tiempo de ejecución) y se asigna a un puntero.
Esto está relacionado con el manejo dinámico de la memoria, y se usa generalmente para cuando se desea cambiar el tamaño de alguna colección de datos en el momento en el que se ejecuta el programa.
Un ejemplo sencillo sería con un array de 5 enteros, lo puedes declarar así:
o así:
int *miArrayDinamico; // Declara miArray como un puntero a int.
miArray = malloc( 5 * sizeof( int ) );.
La instrucción malloc reserva 5 veces el número de bytes ocupados por un dato de tipo int, y hace que el puntero miArray
apunte al primer elemento reservado.
Después, las operaciones tanto con miArray como con miArrayDinamico son similares.
Saludos,
José Jorge (Geo).