ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Trabajo 1 Apuntadores


Enviado por   •  19 de Abril de 2013  •  1.704 Palabras (7 Páginas)  •  406 Visitas

Página 1 de 7

1. Conceptualización de la memoria dinámica.

De acuerdo a la conceptualización del módulo referente a la unidad 1 y a las consultas bibliográficas en la Biblioteca virtual de la UNAD, de respuesta en la columna de la derecha a los siguientes interrogantes:

Enunciado Respuesta Respuesta

En la gestión dinámica de memoria ¿Qué utilidad tiene la función Malloc ()?

La función Malloc()

La asignación de memoria. Reserva un bloque de memoria del tamaño. La función malloc sirve para solicitar un bloque de memoria del tamaño suministrado como parámetro. Devuelve un puntero a la zona de memoria concedida:

void* malloc ( unsigned numero_de_bytes );

El tamaño se especifica en bytes. Se garantiza que la zona de memoria concedida no está ocupada por ninguna otra variable ni otra zona devuelta por malloc.

Si malloc es incapaz de conceder el bloque (p.ej. no hay memoria suficiente), devuelve un puntero nulo.

¿Para qué es utilizado del operador delete en la gestión dinámica de memoria? delete()

permite liberar la memoria cuándo no se necesita

Cuando ya no necesitemos más el espacio reservado debemos liberarlo, es decir, indicar al ordenador que puede destinarlo a otros fines.

Para ello utilizamos el operador delete.

Si no liberamos el espacio que ya no necesitamos, corremos el peligro de

agotar la memoria del ordenador.

delete <variable_puntero> ;

delete [ ] <variable_puntero> ;

Si no liberamos el espacio que ya no necesitamos, corremos el peligro de

agotar la memoria del ordenador

int *p = NULL ;

p = new int [100];

….delete [] p;

Establezca la diferencia relacionadas con el operador sizeof entre las dos instrucciones de

código siguientes:

Instrucción 1.

Valor = (float * ) Malloc (10 * sizeof (float));

Instrucción 2.

valor = (float * ) Malloc (sizeof

(float));

La diferencia radica en que :

instrucción 1 función malloc sirve para solicitar un bloque de memoria del tamaño suministrado como parámetro como parámetro. Devuelve un puntero a la zona de memoria concedida:

Void* malloc (unsigned numero_de_bytes); El tamaño se especifica en bytes. Se garantiza que la zona de memoria concedida no está ocupada por ninguna otra variable ni otra zona devuelta por malloc

.

Operador sizeof El problema de malloc

Es conocer cuántos bytes se quieren reservar. Si se quiere reservar una zona para diez enteros, habrá que multiplicar diez por el tamaño de un entero. El tamaño en bytes de un elemento de tipo T se obtiene con la expresión sizeof (T ) El tamaño de un char siempre es 1 (uno).

Función free

Cuando una zona de memoria reservada con malloc ya no se necesita, puede ser

liberada mediante la función free

.

void free(void* ptr); ptr

es un puntero de cualquier tipo que apunta a un área de memoria reservada previamente con malloc . Si ptr apunta a una zona de memoria indebida, los efectos pueden ser desastrosos, igual que si se libera dos veces la misma zona

Haga una consulta en la biblioteca virtual de la UNAD para indicar el concepto de apuntadores y la importancia en la programación de C++. Los apuntadores son una parte fundamental de C. Si usted no puede usar los apuntadores apropiadamente entonces esta perdiendo la potencia y la flexibilidad que C ofrece básicamente. El secreto para C esta en el uso de apuntadores. C usa los apuntadores en forma extensiva. Porque?

 Es la única forma de expresar algunos cálculos.

 Se genera código compacto y eficiente

 Es una herramienta muy poderosa.

 C usa apuntadores explícitamente con:

 Es la única forma de expresar algunos cálculos.

 Se genera código compacto y eficiente.

 Es una herramienta muy poderosa.

 C usa apuntadores explícitamente con:

 Arreglos, Estructuras y Funciones

Un apuntador es una variable que contiene la direccion en memoria de otra variable. Se pueden tener apuntadores a cualquier tipo de variable.

El operador unario o monadico & devuelve la dirección de memoria de una variable.

El operador de indireccion o diferencia * devuelve el \contenido de un objeto apuntado por un apuntador".

Para declarar un apuntador para una variable entera hacer: int *apuntador;

...

Descargar como (para miembros actualizados) txt (8 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com