La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.

Presentaciones similares


Presentación del tema: "TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO."— Transcripción de la presentación:

1 TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO

2 GESTION DINAMICA DE MEMORIA La instrucción: int estudiantes[40]; reserva 40 enteros Los arrays son un metodo cuando se conoce su longitud o tamaño en el momento de escribir un programa Pero presentan un inconveniente si el tamaño del arreglo solo se conoce en el momento de la ejecucion.

3 Durante la compilacion de las siguientes instrucciones se produciria un error cin>>num_estudiantes; int asignatura [num_estudiantes]; Esto es por que el compilador requiere que el tamaño del array sea constante Sin embargo, en ocasiones no se conoce la memoria necesaria hasta el momento de la ejecucion

4 Por ejemplo, si se desea almacenar una cadena de caracteres tecleado por el usuario, no se puede prever, a priori, el tamaño del array necesario, a menos que se reserve un array de gran dimension y se malgaste memoria cuando no se utilice. Para resolver este inconveniente se debe recurrir a punteros y a tecnicas de asignacion dinámica de memoria. Un espacio de la variable asignada dinámicamente se crea duarante la ejecucion del programa

5 Caso contrario de una variable local cuyo espacio se asigna en tiempo de compilacion La asignacion de dinamica de memoria proporciona control directo sobre los requisitos de memoria de su programa, es decir crear o destruir la asignacion dinamica en cualquier momento durante la ejecucion.

6 MAPA DE MEMORIA DE UN PROGRAMA SEGMENTO DE CODIGO 1 SEGMENTO DE CODIGO 2 CODIGO DE PROGRAMA COMPILADO MEMORIA BAJA.... SEGMENTO DE DATOS VARIABLES GLOBALES INICIALIZADAS VARIABLES GLOBALES NO INICIALIZADAS VARIABLES LOCALES NO INICIALIZADAS INFORMACION DE CONTROL VARIABLES LOCALES INICIALIZADAS SEGMENTO DE PILA MEMORIA DE MONTICULO (ALMACEN LIBRE) TODA LA MEMORIA QUE QUEDA LIBRE ESTA DISPONIBLE EN ASIGNACIONES DINAMICAS DE MEMORIA

7 VENTAJAS DE LA ASIGNACION DINAMICA DE MEMORIA EN C++ En C las funciones malloc() y free () asignan y liberan memoria de un bloque de memoria denomiando monticulo del sistema. C++ ofrece un nuevo y mejor metodo para gestionar la asignacion dinamica de memoria, los operadores new y delete que asignan y liberan memoria de una zona de memoria llamada almacen libre

8 Los operadores new y delete son mas versatiles que malloc() y free() por que: 1.Asocian la asignacion de memoria con el medio que la utiliza 2.Realizan verificacion de tipos 3.??????????? 4.Los objetos creados con new residen en el almacenamiento libre. Los objetos se eliminan con el operador delete

9 Nota: las Funciones se construyen en las librerias, los operadores se construyen en el propio lenguaje EL OPERADOR NEW El operador new asigna un bloque de memoria que es el tamaño del tipo de dato El dato u objeto puede ser int, un float, una estructura, un array o cualquier otro tipo de dato El operador new devuelve un puntero que es la direccion del bloque asignado de memoria.

10 El puntero se utiliza para referenciar el bloque de memoria El formato del operador new es: a)Puntero = new nombreTipo (inicializador opcional) b)Tipo *puntero = new tipo c)Tipo *puntero = new tipo[dimensiones] El formato del operador delete es: delete puntero

11 El operador new devuelve la direccion de la variable asignada dinamicamente El operador delete elimina la memoria asignada dinamicamente a la que accede el puntero


Descargar ppt "TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO."

Presentaciones similares


Anuncios Google