Implementación del algoritmo shunting yard.

Uso del método shunting yard para evaluar la operación aritmética.
Arreglo de varios malloc

Estaban reservando una unidad menos de la necesaria
Arreglo de post-incremento a pre-incremento

Al estar como post-incremento el índice llegaba hasta un lugar después
del fin del array.
Eliminar castings innecesario

Elimina todos los castings de los malloc y realloc, son innecesarios.
Esas funciones devuelven (void *) y ese tipo se promociona
automáticamente y con seguridad a cualquier otro tipo de puntero.
Arreglo de potenciales memory leaks

Intento de liberar la memoria después de reservarla y usarla.