Buenas tengo un problema en un programa en pascal, concretamente en el procedimiento de apilar, en una pila dinamica. En la primera ejecución del algoritmo me da el error de heap overflow, al hacer la reserva de memoria para la varia puntero new(p). Aquí os dejo el código , espero que sepais el fallo, gracias:
Procedure Apilar(var pila:tpPila; disco:integer;t1,t3,t2:char);
Var punt:tpPila;
Begin
new(punt);
punt^.sig:=pila;
punt^.disco:=disco;
pila:=punt
End;
Me falla en este punto:
Procedure X (var f:text; n:integer; ori,dest,aux:char);
var pila:tpPila;
Begin
Iniciapila(pila);
Apilar(pila,n,ori,dest,aux);Por cierto la declaracion de tipos es la que sigue:
tpPila= ^TpNodo;
TpNodo=RECORD
disco:integer;
sig:tpPila
END;
Mushas gracias por adelantado.