• Domingo 22 de Diciembre de 2024, 21:44

Autor Tema:  Error Con Punteros  (Leído 1410 veces)

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Error Con Punteros
« en: Martes 6 de Febrero de 2007, 06:43 »
0
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

Código: Text
  1. Uses crt;
  2. var p,q: ^integer;
  3. Begin
  4.      clrscr;
  5.      NEW(p);
  6.      new(q);
  7.      p^:=2;
  8.      q:=p;
  9.      p^:=0;
  10.      write(q^);
  11.      readkey;
  12.      dispose(p);
  13.      dispose(q);
  14. End.
  15.  
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Error Con Punteros
« Respuesta #1 en: Martes 6 de Febrero de 2007, 19:47 »
0
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);

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Error Con Punteros
« Respuesta #2 en: Martes 6 de Febrero de 2007, 20:08 »
0
Gracias... era exactamente lo que pasaba...  :P
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...