MANEJO DINAMICO DE MEMORIA

Solo disponible en BuenasTareas
  • Páginas : 14 (3279 palabras )
  • Descarga(s) : 0
  • Publicado : 31 de agosto de 2015
Leer documento completo
Vista previa del texto

“MANEJO DINÁMICO DE MEMORIA”



Las áreas de datos asignadas hasta el momento a las variables se han hecho en forma “ESTÁTICA”; es decir, áreas que se asignan desde el momento de la compilación y permanecen asignadas durante el ciclo de vida del programa, así no se utilicen.

Un área de datos es asignada dinámicamente cuando su existencia y permanencia a lo largo de un programa dependeexclusivamente del programador y no de la máquina.

El asignamiento dinámico se hace a través de un tipo de datos llamado “APUNTADOR”, ó puntero y a través de dos subprogramas; uno genera o crea un área de datos pidiendo la dirección de ésta al sistema y otro que le entrega o le devuelve la dirección de memoria del área de datos al sistema, cuando ya esta no se requiere.

“El asignamientode las áreas de datos en forma dinámica se hace en la fase de ejecución, es decir el carácter dinámico se da porque ocurre en la fase de corrida del programa”

“PAUTAS PARA EL MANEJO DINÁMICO DE MEMORIA”

En la asignación estática de memoria, bien sea un área sencilla o perteneciente a un arreglo o registro recibe un nombre bajo, el cual se referencia y este es asociado a un áreaespecífica de la memoria, y esto se hace solo en la fase de compilación.

Ej:




Para los campos dinámicos se establece mejor lo siguiente:

1. Existe un nombre asociado a su forma (no a su contenido en la fase de compilación), es decir se conocerá el nombre de una variable que no esta asociada con un área en particular, donde se almacenará la dirección de una área de datos en la memoria principaldel computador.


2. El área de memoria que se usará (será perdida) será referenciada directamente por su dirección que es guardada en una variable especial que solo almacenará direcciones de memoria.


3. Para referenciar el área de datos lo hacemos mediante su dirección (no nos interesa el contenido de una dirección pero si la forma de referenciarla)


TIPO APUNTADOR


Un campo quepertenezca a este tipo, bien sea sencillo o perteneciente a un grupo superior, (registros o estructuras) tiene la función particular de almacenar direcciones de memoria.

Los tipos apuntadores tienen diferentes formas de definirse de acuerdo al lenguaje que se utilice, en la parte algorítmica simplemente le vamos a llamar APUNTADOR (este sería semejante en su forma a cualquier otro tipo de dato,por ejemplo ENTERO, REAL, CARÁCTER, LÓGICO, etc)

El tipo APUNTADOR se define como un tipo al cual le podemos asociar variables que solo pueden almacenar direcciones de memoria.

Una dirección de memoria es la dirección de un área de datos donde se almacena información que puede ser numérica entera, numérica real, de caracteres, lógica, tipo registro, estructura etc.
Por lo tanto se puedealmacenar en una variable tipo apuntador la dirección que tiene cualquier área de las anteriormente descritas. En este caso se dice que la variable asociada con el tipo apuntador, es de tipo entero, registro, etc.

Generalmente el área de datos asociada con un tipo apuntador es de tipo registro debido a que en esta se puede guardar información perteneciente a diferentes tipos de datos.
Laforma de asociar variables al tipo apuntador es:




APUNTADOR REGISTRO
Campo 1 del registro
Campo 2 del registro
.
.
.

Campo n del registro
Fin


Y si tenemos:

Vble1, vble2, vble3 ------------------vblen: de tipo APUNTADOR

Estas variables almacenarán direcciones de memoria que corresponden a áreas dedatos de el tipo registro, o sea que los valores no son asociados con los comúnmente conocidos sino aquellos números que tienen las direcciones de memoria de un computador (generalmente asignados en forma hexadecimal)

Veamos un ejemplo:

APUNTADOR REGISTRO

CARNET
NOMBRES
PAGO-MAT
FIN

Si tenemos:
EST de tipo REGISTRO tendríamos un área de datos asignada estáticamente (ya conocida)...