SoloCodigo
Programación General => Pascal => Mensaje iniciado por: JrcsDev en Martes 6 de Febrero de 2007, 06:43
-
Hola a todos... estaba probando un pequeño código sobre punteros, pero me da un error 204 de operación inválida con punteros... la verdad no sé donde está el error, aquí les dejo el código para que me ayuden... GRACIAS! :P
Uses crt;
var p,q: ^integer;
Begin
clrscr;
NEW(p);
new(q);
p^:=2;
q:=p;
p^:=0;
write(q^);
readkey;
dispose(p);
dispose(q);
End.
-
Aqui esta el primer error:
q:=p;
q hace referencia a un pedazo de memoria que reservaste, pero como le asignas otro valor simplemente ya no podrás liberar ese fragmento de memoria por que ninguna otra variable tiene almacenada dicha información.
Por lo tanto el segundo error es:
dispose(q);
Por querer liberar una zona de memoria que ya liberaste puesto que q apunta a la misma zona de memoria que acabaste de liberar con dispose(p);
Si quieres que funcione sin remover "q:=p;" tienes que quitar:
new(q);
y
dispose(q);
-
Gracias... era exactamente lo que pasaba... :P