Línea 47. ¿Para qué liberas movie? Lo sigues necesitando una vez fuera de la función.
Línea 29. El argumento de x debería ser un puntero a puntero ya que realloc te puede reasignar la dirección del array dinámico. Si pasas solo el puntero éste será copiado, debido a que los argumentos se pasan por valor, y aunque se modifique cuándo salgas de la función no verás ese cambio.