Tema: Punteros
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/10/2010, 13:08
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Punteros

Para empezar, todo tipo de variable se guarda en la memoria. Esta memoria esta dividida en varios sectores. La zona estatica y la zona volatil.

Cada vez que entramos en una funcion se crea en la zona volatil un marco de activacion donde se guardan las variables locales. Cuando esta funcion termina este marco de activacion se pierde y puede ser instantaneamente pisado por otro llamado a funcion o la funcion llamante de la misma.
Por otro la do la zona de memoria estatica esta para guardar valores que no puedan ser pisado durante la ejecucion del programa, a menos, que sean liberados.

Ahora porque esta el hecho de la memoria volatil y la estatica. Para empezar si todo estuviese en memoria estatica las funciones no podiran ser llamadas de forma recursiva ya que el valor de las variables locales se pisarian en cada llamado.

Y ahora porque se utilizan punteros? Pensa en lo siguiente, los programas que manejan gran informacion de datos, como los editores de videos, imaginate si a penas arranca el programa crea una variable global de 500MB para un buffer de manejo de video. Y simplemente el usuario ingresa un video de un mega. Hay un gran sobrante de memoria que esta siendo consumida.

Para evitar esto se usa memoria dinamica que se aloja a pedido en momento de ejecucion. Pero para acceder a esta memoria en momento de ejecucion no vamos a tener el nombre de la variable, sino que vamos a tener un puntero a la direccion de memoria dodne alojamos esta memoria.

Otro uso puede ser para modificar una variable local que no sido destruida desde otro funcion. Ya que seria inacecible desde otros funciones.