EDMM
Jessica Ayala
Created on September 10, 2024
More creations to inspire you
VISUAL COMMUNICATION AND STORYTELLING
Presentation
ASTL
Presentation
TOM DOLAN
Presentation
BASIL RESTAURANT PRESENTATION
Presentation
AC/DC
Presentation
ENGLISH IRREGULAR VERBS
Presentation
ALL THE THINGS
Presentation
Transcript
M.T.I. jESSICA AYALA SANTANA
manejo de memoria
XX/XX/20XX
'Todas las variables, arreglos y objetos en general, tienen una duración determinada en el transcurso de un programa. Son creados y destruidos para su uso y después para que la memoria sea liberada; para que la utilicen otros objetos.
TIPOS
memoria estática
memoria dinámica
Los objetos son creados en ese momento y destruidos al final del programa. Mantienen la misma localización en memoria durante todo el transcurso del programa.
Estos objetos tienen asignada la misma dirección de memoria desde el comienzo hasta el final del programa.
Su tamaño (número de bytes necesarios para su almacenamiento) DEBE ser conocido en tiempo de compilación.
La forma más fácil de almacenar el contenido de una variable en memoria en tiempo de ejecución es en memoria estática o permanente a lo largo de toda la ejecución del programa. No todos los objetos (variables) pueden ser almacenados estáticamente.
ESTÁTICA
La memoria estática es la que se reserva al momento de compilación antes de comenzar a ejecutarse el programa.
Es la utilizada por variables globales y las declaradas de tipo static.
MEMORIA ESTÁTICA
Los objetos correspondientes a procedimientos o funciones recursivas, ya que en tiempo de compilación no se sabe el número de variables que serán necesarias.
No pueden almacenarse en memoria estática:
Las estructuras dinámicas de datos tales como listas, árboles, etc. ya que el número de elementos que las forman no es conocido hasta que el programa se ejecuta.
MEMORIA ESTÁTICA
Se adapta mejor a las necesidades de cada caso pero en contrapartida es un poco más complejo de programar.
Las reservas de memoria dinámica se hacen en tiempo de ejecución después de leer los datos y de conocer el tamaño exacto del problema a resolver.
DINÁMICA
El programador es el que solicita memoria para crear los objetos y es responsable de liberar la memoria cuando ya no la necesita para ser reutilizada.
Almacenamiento libre
MEMORIA DINÁMICA
.ANÁLISIS
Supongamos que nuestro programa debe manipular estructuras de datos de longitud 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.
.ANÁLISIS
Una manera de manejar ese ``número indeterminado'', sería declarar una constante MAX_LINEAS, darle un valor vergonzosamente grande, y declarar un array de tamaño MAX_LINEAS. Esto, obviamente, es muy ineficiente. 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.