Memoria Dinamica

Solo disponible en BuenasTareas
  • Páginas : 4 (812 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de mayo de 2012
Leer documento completo
Vista previa del texto
Universidad Nacional Pedro Ruiz Gallo
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...