Memoria Dinamica

Solo disponible en BuenasTareas
  • Páginas : 3 (711 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de abril de 2013
Leer documento completo
Vista previa del texto
MEMORIA DINÁMICA
Es la memoria que se le asigna a una variable y le pertenece a ésta hasta que se termina la ejecución del programa.

La memoria dinámica, más que un tipo de memoria es una manerade utilizarla. Consiste en declarar variables y eliminarlas cuando ya no sean necesarias, mediante subprogramas. Es un espacio de almacenamiento que se puede solicitar en tiempo de ejecución. Ademásde solicitar espacios de almacenamiento, también podemos liberarlos (en tiempo de ejecución) cuando dejemos de necesitarlos.

Supongamos que nuestro programa debe manipular estructuras de datos delongitud desconocida. Un ejemplo simple podría ser el de un programa que lee las líneas de un archivo y las ordena. Por tanto, deberemos leer un número indeterminado de líneas, y tras leer la última,ordenarlas. Una manera de manejar ese “número indeterminado”, sería declarar una constante MAX_LINEAS, darle un valor grande, y declarar un array de tamaño MAX_LINEAS. Esto, obviamente, es muyineficiente. Nuestro programa no sólo quedaría limitado por ese valor máximo, sino que además gastaría esa enorme cantidad de memoria para procesar hasta el más pequeño de los ficheros. La solución consisteen utilizar memoria dinámica. Esto conlleva que, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas.UTILIZACIÓN DE MEMORIA DINÁMICA
Como sabemos, en lenguaje C/C++, &x es la dirección donde se almacena en memoria la variable x. Si p es un apuntador en C/C++, *p es el contenido de la localidad dememoria p. Si usamos C/C++ para implementar listas ligadas, podemos usar estos apuntadores. Sin embargo, primero analizaremos cómo asignar y liberar el almacenamiento en forma dinámica y cómo se accede alalmacenamiento dinámico en C/C++.
En C/C++, una variable que debe contener la dirección en la memoria que almacena un número entero se crea mediante la declaración.

int *p;

Recordemos que...