martes, 28 de junio de 2016

1. GESTIÓN DINÁMICA DE MEMORIA


DEFINICIÓN


       VIDEO GESTION DINAMICA DE MEMORIA
  •       Un puntero es un tipo especial de variable que contiene, ni más ni menos una dirección de memoria. 
  •       A partir de esa dirección de memoria puede haber cualquier tipo de objeto (o dato): un char, un int, un float, un array, una estructura, una función u otro puntero.
  •      El programador será el responsables de decidir ese contenido de acuerdo a la cantidad de memoria que requiere dentro de una estructura.




Operaciones Básicas de Gestión Dinámica de Memoria



       MALLOC

Esta función asigna un cierto espacio de memoria  a una estructura de datos (por ejemplo, un vector).

REALLOC

Cambia el tamaño del espacio de memoria asignado a una estructura de datos.

FREE 

Libera el espacio de memoria asignado a una estructura de datos (ese espacio queda libre
para ser asignado en el futuro a otras estructuras).


Operaciones de Reserva de Memoria con un Vector





La figura compara el funcionamiento de los vectores estáticos y dinámicos. A la izquierda
se muestra cómo al declarar un vector estático el computador automáticamente reserva
espacio en memoria según el tamaño establecido en la declaración, y crea la variable que
apunta a ese espacio, para poder acceder después y durante el programa. A la derecha se
muestra como, en el caso de los vectores dinámicos, primero se crea la variable que
apuntará al vector, después se reserva el espacio justo que se necesite, se hace que la
variable apunte al espacio y se accede al vector con normalidad.


Matrices dinámicas



La figura muestra la estructura que tiene una matriz dinámica de N filas y M columnas.
La variable matriz es un apuntador a un vector de N posiciones. Cada posición
contiene un apuntador a una de las filas de la matriz. El apuntador que  hay primera
posición de ese vector apunta al espacio de memoria donde están los M
elementos de la fila 0 de la matriz. 





Ventaja de utilizar memoria dinámica

  •       Los programas aprovecharán mejor la memoria del ordenador en la ejecución de un programa.
  •       Solo se utiliza la memoria que es necesario.
  •       Se puede dimensionar el rango de memoria que el usuario requiere.
  •       Se puede liberar la memoria.


No hay comentarios:

Publicar un comentario