Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: $Edu$ en 23 Noviembre 2011, 22:26 pm



Título: No entiendo para que sirven los punteros :/
Publicado por: $Edu$ en 23 Noviembre 2011, 22:26 pm
No se si funcionara lo mismo en todos los lenguajes pero mas que nada lo quiero saber en Pascal (creo q es Delphi tambien).

Diganme en que me estoy equivocando:

Un puntero es una direccion de memoria, por lo que sea el valor que esta contenga siempre apuntara hacia ahi. Bueno yo ahi dije: Ya entiendo cual sera la diferencia.. con variables comunes si hacemos:

a = 4
b = a
a = 5
c = a * b

La variable c valdria 20 ya que no importa si luego a cambia de valor o no.

Pero trabajando en punteros, mi idea era que si importaba lo que entonces daria 25.

Como funciona esto? tienen algun ejemplo que no encontre uno para decir: Oh, que grandes son los punteros! xD


Título: Re: No entiendo para que sirven los punteros :/
Publicado por: Littlehorse en 23 Noviembre 2011, 23:41 pm
Un puntero es una variable que contiene una dirección de memoria, o que apunta a una dirección de memoria como se suele decir para que se entienda mejor.
Obviamente si en tu ejemplo B fuese un puntero, C terminaria con un valor de 25.

Por ejemplo:

a = 4; Variable A | valor = 4 | Dirección = 0x1000
*b = &a, Puntero B | valor = 0x1000 | Dirección = 0x1128
a = 5; Variable A | valor = 5 | Dirección = 0x1000
*b; Puntero B | valor = 0x1000 | Dirección = 0x1128

Independientemente del los cambios que sufra el valor de la variable A, la dirección es la misma (en este ejemplo por supuesto, puede haber casos en donde la dirección de memoria cambie por varios motivos: variables fuera del scope, nueva reserva de memoria dinamica, etc). Por lo tanto al acceder desde el puntero B, siempre vas a acceder al valor actual de la variable A.

Razones para los punteros hay muchas, desde el pasaje por referencia hasta el uso de memoria dinamica, arreglos, listas y miles de etcs. Todo lo que no permita usar punteros de forma nativa es porque en su implementación ya los utiliza y te ahorra el trabajo (por ejemplo en lenguajes como Java).

Hilos sobre punteros los hay muchos por el foro, utiliza el buscador a ver que encuentras y si no me dices.

Saludos!




Título: Re: No entiendo para que sirven los punteros :/
Publicado por: Unbr0ken en 23 Noviembre 2011, 23:59 pm
De hecho estoy haciendo un tutorial sobre punteros pero guiado al Game Hacking basándome en el CE... para aquellos que os interese ;D.

Luego lo publico...


Título: Re: No entiendo para que sirven los punteros :/
Publicado por: $Edu$ en 24 Noviembre 2011, 14:52 pm
Gracias littlehorse! y se espera ese tutorial unbroken :P


Título: Re: No entiendo para que sirven los punteros :/
Publicado por: Pablo Videla en 24 Noviembre 2011, 15:12 pm
De hecho estoy haciendo un tutorial sobre punteros pero guiado al Game Hacking basándome en el CE... para aquellos que os interese ;D.

Luego lo publico...

Avisa cuando lo publiques y seria bueno que explicaras con mayor detalle eso de las direcciones de memoria y si estan reservadas o algo asi, a prueba de imbeciles por favor, gracias xD


Título: Re: No entiendo para que sirven los punteros :/
Publicado por: 79137913 en 24 Noviembre 2011, 15:18 pm
HOLA!!!

Mmm, pense que habias entendido Pff.

GRACIAS POR LEER!!!


Título: Re: No entiendo para que sirven los punteros :/
Publicado por: folostia en 27 Noviembre 2011, 17:36 pm
De hecho estoy haciendo un tutorial sobre punteros pero guiado al Game Hacking basándome en el CE... para aquellos que os interese ;D.

Luego lo publico...
Cuando loa cabes y lo publiques avisa que seguramente me venga bien  :laugh: