Java

Páginas: 24 (5778 palabras) Publicado: 17 de diciembre de 2012
I.E.S. Francisco Romero Vargas –Departamento de Informática Fundamentos de Programación __________________________________________________________________________________________________________

FUNDAMENTOS DE PROGRAMACIÓN
Tema 6

Estructuras Dinámicas

1º Administración de Sistemas Informáticos I.E.S. Francisco Romero Vargas Departamento de Informática__________________________________________________________________________________________________________ Estructuras Dinámicas 0

I.E.S. Francisco Romero Vargas –Departamento de Informática Fundamentos de Programación __________________________________________________________________________________________________________

1. INTRODUCCIÓN.
Un programa puede guardar información en la memoria del ordenador de dos formas.La primera utiliza variables locales y globales (incluyendo vectores y estructuras). En el caso de variables globales y estáticas (static), el establecimiento se establece fuera del tiempo de ejecución del programa en la zona de memoria correspondiente a los datos del programa. Para las variables locales, el almacenamiento se establece en la pila. Estas variables requieren que el programadorconozca, de antemano, la cantidad de espacio necesario para cada una de ellas. La segunda forma de almacenar información es mediante la utilización del sistema de asignación dinámica. Con este método, se asigna tanto espacio de memoria libre para el almacenamiento de la información como sea necesario y se vuelve a convertir en memoria libre cuando ya se ha utilizado. La región de memoria libre seencuentra entre el área de almacenamiento permanente del programa (segmento de datos) y la pila. Esta región se denomina zona de memoria dinámica o heap. Una ventaja que tiene la utilización de asignación dinámica de memoria para almacenar datos es que la misma memoria se puede utilizar para varios objetos distintos durante el curso de la ejecución de un programa, ya que en tiempo de ejecución esasignada y posteriormente liberada. Otra de las ventajas es que la asignación dinámica permite la creación de listas enlazadas y árboles binarios. Para realizar asignación dinámica de memoria, se usan los punteros. Un puntero es una referencia a datos o código en un programa. Es literalmente la dirección en memoria del elemento al que apunta. El uso de punteros permite escribir programas grandes y másflexibles, y es especialmente útil cuando se escriben programas orientados a objetos. Básicamente, se necesita usar punteros por varias razones: ! Si es necesario el paso por referencia de un parámetro a una función. ! Si se usan datos de tamaño desconocido en tiempo de compilación. ! Si los programas manejan datos de múltiples tipos. ! Si los programas utilizan listas encadenadas de registros ode objetos. Pero, a diferencia de la declaración de variables simples, tales como los tipos char, short, int, float o double, donde se reserva automáticamente el espacio necesario para almacenar el dato asociado a la variable, cuando se declara un puntero no se reserva ningún espacio de memoria, por lo que hay que recurrir a funciones especializadas que realicen esta acción. En el caso de losvectores puede ocurrir que se reserve o no, dependiendo del tipo de declaración que se realice. Por ejemplo, si se hace la siguiente declaración: char texto[20]; el vector texto tiene reservada memoria para 20 variables de tipo char; sin embargo si se hace cualquiera de las siguientes: char texto[]; char *texto;__________________________________________________________________________________________________________ Estructuras Dinámicas 1

I.E.S. Francisco Romero Vargas –Departamento de Informática Fundamentos de Programación __________________________________________________________________________________________________________

el vector no reserva ningún espacio y hay que recurrir a funciones específicas para reservar el espacio que se necesite. Este sistema tiene la ventaja,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Java
  • Java
  • java
  • JAVA
  • java
  • java
  • javiera
  • Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS