SoloCodigo

Programación General => Pascal => Mensaje iniciado por: H3ctor en Sábado 20 de Mayo de 2006, 19:28

Título: Heap Overflow
Publicado por: H3ctor en Sábado 20 de Mayo de 2006, 19:28
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.  :hola:
Título: Re: Heap Overflow
Publicado por: juancpalmajr en Miércoles 24 de Mayo de 2006, 03:40
uuy eso me hizo acordar que tengo que repasar listas y punteros en pascal, mañana o pasado respondo. pero que codigo mas espantoso, usa indentacion y el tag CODE. Solo posteo para decir que se ve horrible.
jajaja no te me vayas a enfadar compañero.