Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/05/2006 #1


Heap Overflow
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);
20/05/2006 #2


Se me olvidaba poner la declaracion de tipos:

tpPila= ^TpNodo;
TpNodo=RECORD
disco:integer;
sig:tpPila
END;
20/05/2006 #3


El error es que armas una pila creciente, cuando debe ser decreciente, es decir crecimiento invertido, por lo que se sobre pasa y genera el over flow, salvo que definas en el encabezado del programa el espacio y direccion de memoria utilizada.

Saludos.
21/05/2006 #4


Gracias por tu contestación, pero no se como solucionarlo. En que parte del código esta el error?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.