TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Unidad 15 Características de C++ no relacionadas con el DOO.
ESTRUCTURA DE LOS LENGUAJES DE PROGRAMACION
Arrays Fundamentos de Programación I
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Estructuras de datos. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
Arrays Universidad Nacional Mayor de San Marcos
Tema 1. Introducción a la programación (Lenguaje java).
Funcionamiento, programación
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Detalles del sistema operativo
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Teoría de lenguajes y compiladores
Implementación de Listas
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en C++
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.

Material de apoyo Unidad 2 Estructura de datos
HILOS Y COMUNICACIÓN ENTRE PROCESOS
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
Introducción a los punteros
Capítulo 5. Punteros y Cadenas de Caracteres
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Índice. Revisando conceptos acerca de la memoria.
Informática Ingeniería en Electrónica y Automática Industrial
Clase 10: Estructuras de datos y arreglos.
PUNTEROS Ing Anghello Quintero.
Informática Ingeniería en Electrónica y Automática Industrial
El lenguaje de programación C - Vectores y matrices -
Aplicación de estructuras de datos
Introducción a los punteros Prof. Domingo Hernández.
Capítulo 7 Gestión de memoria.
Manejo de Punteros y objetos en memoria dinámica en C++
Programación Orientada Objetos
Unidad II Introducción a la programación en C++

APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Programación en C para electrónicos
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
1 Definición y Conversión de datos Agustín J. González ELO-329.
Los punteros Programación modular.
Punteros Recomendado: 1. Nivelación Funciones
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
SEMANA 01_2.
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Teoría de lenguajes y compiladores
El lenguaje C++ Isidro González Caballero (Universidad de Oviedo) Técnicas de Comp. en Física Santander, 13/12/
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Computación I. CI-2125 Tema VII
2.2.2 S EGMENTACIÓN Jorge Javier Camacho Cortés. Samuel Gallegos Gómez. Dunia Andrea González Corona.
Laboratorio de programación
Conceptos y Lenguaje Imperativo
MEMORIA DINÁMICA.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
1 Definición y Conversión de datos Agustín J. González ELO-329.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
Tema 1. Estructuras de datos Objetivo: Objetivo: El alumno resolverá problemas de almacenamiento, recuperación y ordenamiento de datos y las técnicas de.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Transcripción de la presentación:

TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO

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.

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

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

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.

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

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

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

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.

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

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