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);
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);