Memoria Dinamica
Escuela Profesional Computación e Informática
Algoritmos y Estructura de Datos II
Docente: MSc Jessie Leila Bravo Jaico
SEPARATA Nro 01
MemoriaDinámica
Hasta ahora hemos trabajado con variables estáticas, las cuales no varian su tamaño hasta la culminación del programa, desperdiciando espacio de memoria, en cambio trabajar con memoria dinámicanos ofrece las siguientes ventajas:
❖ Se crean las variables conforme se requieran y se liberan cuando ya no se necesitan.
❖ Optimiza el uso de la memoria.
❖ Más rápido, dado quetrabajamos con direcciones de memoria directamente.
Para trabajar con memoria dinámica es necesario comprender un nuevo tipo de dato llamado puntero o apuntador.
Apuntadores o Punteros
1.-Definición: Un puntero es una dirección de un dato simple o estructurado.
entero
real
Datos Simples caracter
Dirección lógico
DatosEstructurados Arreglos - Matrices
Cadenas - Tablas Registros
Listas – Pilas - Colas
Arboles
Grafos
Un puntero ocupa 2 bytes de memoria en los tipos de memoria:Small y Tiny y 4 bytes en los tipos de memoria: Large y Huge.
2.- Declaración de un puntero:
Sintaxis:
*
entero * px
En C/C++:
int *px;
3.- Representación:a. Perdido: Estado del puntero cuando recien se declara. Tiene una dirección aleatoria.
int * px;
b. Tierra: Estado del puntero al ser inicializado. Tiene una dirección Cero.int * px;
px = NULL; (NULL es una constante que existe en C/C+)
c. Asignado: Puntero que apunta a una dirección de memoria válida.
Aplicando a variablesestáticas:
int x ; (Variable estática)
int *px; (Declaración del puntero)
px = &x (El “&” extrae la dirección de la variable estática x)
px...
Regístrate para leer el documento completo.