memoria dinamica y punteros

Páginas: 5 (1172 palabras) Publicado: 5 de diciembre de 2013
Departamento de Informática
Universidad de Valladolid
Campus de Segovia
______________________

TEMA 2:
MEMORIA DINÁMICA y
PUNTEROS

1

MEMORIA DINÁMICA y
PUNTEROS
•Introducción
•Conceptos básicos
•Definición y declaración de punteros
•Creación y destrucción de variables dinámicas.
•Operaciones básicas con datos referenciados
•Operaciones básicas con punteros
•El valor nil•Aplicaciones no recursivas de los punteros

2

INTRODUCCIÓN


Las estructuras de datos hasta ahora vistas se almacenan
estáticamente en la memoria física del ordenador.
– El espacio de memoria se reserva con anticipación y no cambia
durante la ejecución del programa*.
– Esto permite una comprobación de tipos en tiempo de compilación.



Inconvenientes de la configuración estática:– Su rigidez, ya que estas estructuras no pueden crecer o
menguar durante la ejecución del programa.

* Esto no implica que la cantidad de memoria de ejecución de un programa sea constante, ya que
dependerá del numero de subprogramas recursivos invocados por el programa.

3

INTRODUCCIÓN


La definición y manipulación de estos objetos se realiza en
Pascal mediante los punteros(variables cuyo contenido son
posiciones de memoria).



Ventaja frente a las estructuras estática:
– La flexibilidad que poseen las estructuras dinámicas en cuanto a
las formas que pueden adoptar: árboles, listas, redes, etc...



Inconvenientes:
– Alliasing: Doble direccionamiento sobre una misma variable lo que
implica efectos laterales.
– Gestión de la memoria: Su uso requiere unaespecial atención de
la memoria disponible así como de la que ya no queramos utilizar.

4

CONCEPTOS BÁSICOS


Un puntero es una variable que contiene la dirección de
memoria donde se encuentra almacenado un dato.



Una variable referenciada o dato apuntado es el dato cuya
posición en memoria está contenida en un determinado puntero
(variable dinámica).

Dirección de
memoria0123 4567

1365 2056

Memoria
1365 2056

puntero

DATO

Variable
referenciada
5

REPRESENTACIÓN GRÁFICA

Puntero

Variable
referenciada

DATO

6

DEFINICIÓN Y DECLARACIÓN DE
PUNTEROS


Para poder usar una variable puntero es necesario:






Definir el tipo de dato (o estructura) al que se apunta. (esta
declaración se realiza dentro de la sección TYPE).Declarar las variables punteros que sean necesarias (esta
declaración se realiza dentro de la sección VAR).

En Pascal un puntero sólo puede señalar a objetos
de un mismo tipo, el establecido en la declaración.

7

DIAGRAMA SINTÁCTICO

^

TIPO

Ejemplo I:

Ejemplo II:

TYPE

TYPE
tApNodo=^tNodo;
tNodo=record
info:.......
Sig:tApNodo
end;

tapunchar=^char;
VARapcar:=tapunchar;
VAR

ApNodo:=tApNodo;
8

ALGUNAS OBSERVACIONES AL
RESPECTO
• Una variable de tipo puntero ocupa una cantidad de
memoria fija, independiente del tipo de dato al que
apunta.
• Un dato referenciado, como el del ejemplo, no posee
existencia inicial, o lo que es lo mismo no existe
inicialmente espacio reservado en memoria para el.

9

LA NECESIDAD DE UTILIZAR
PUNTEROS
•Para poder emplear variables dinámicas es
necesario emplear un tipo de dato que permita
referenciar nuevas posiciones de memoria que no
han sido declaradas a priori y que se van a crear y
destruir en tiempo de ejecución.
• Estas variables son los punteros que en Pascal es un
tipo de dato simple.

10

CREACIÓN Y DESTRUCCIÓN DE
VARIABLES DINÁMICAS
• Las variables dinámicas son pordefinición aquellas
que se crean cuando se necesitan y se destruyen
cuando ya han cumplido con su cometido.
• En pascal la creación y destrucción de variables
dinámicas se realiza mediante los siguientes
procedimientos:
– New(puntero)
– Dispose(puntero)
11

CREACIÓN DE UNA VARIABLE
DINÁMICA
• New(puntero)
– Reserva la memoria necesaria para un dato del tipo
apropiado.
– Coloca la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Memoria dinámica y punteros
  • Invetigacion Punteros Y Memoria Dinamica
  • Punteros y asignación dinámica de memoria
  • Punteros y Direccion De Memoria
  • Memoria Dinamica
  • Memoria dinamica
  • Memoria dinamica
  • Memoria Dinamica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS