Está en la página 1de 5

APORTE COLABORATIVO 1

ACTIVIDAD SEIS TRABAJO COLABORATIVO 1 ESTRUCTURA DE DATOS

DIANA CAROLINA RINCON HERNANDEZ T.I 94122407750.

GRUPO

301305_58

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA- UNAD ESCUELA DE CIENCIA BASICAS TECNOLOGIAS E INGENIERIAS CEAD ACACIAS META. OCTUBRE DE 2012

APORTE COLABORATIVO 1 1. Conceptualizacin de la memoria dinmica.

ENUNCIADO RESPUESTA En la gestin dinmica de memoria Qu utilidad tiene la funcin malloc La funcin malloc es empleada ()? comnmente para intentar ``tomar'' una porcin contigua de memoria. Y reservar un espacio en la memoria. Para que esta utilizado el operador delete en la gestin dinmica de memoria?

Establezca las diferencias relacionadas con el operador sizeof entre las dos instrucciones de cdigos siguientes: Instruccin 1: Valor = (Float *)malloc (10*sizeof(float)) Instruccinn 2: Valor=(float *) malloc ( sizeof (float))

Con los operadores New y delete el programador tiene entera libertad para decidir crear o destruir sus variables cuando las necesite. Una variable creada con el operador New dentro de cualquier bloque, perdura hasta que es explcitamente borrada con el operador delete. Profundizando un poco en la asignacin dinmica, se encuentra el operador sizeof, el cual determina el tamao en bytes que se requiere en la asignacin dinmica de memoria, ya sea por medio de los operadores New y Delete, o por las funciones Malloc y Free, de un arreglo o de cualquier otro tipo de datos La primera instruccin, se ve como la funcin malloc ocupa un bloque de memoria como tipo float (4 bytes) que al convertirlo por 10 no muestra un espacio de 40 bytes el cual se muestra por medio de la instruccin sizeof. La segunda instruccin tiene las mismas funciones del primer ejemplo pero no tiene un numero para multiplicar el tamao del float entonces por medio de la funcin sizeof mostrara 4 bytes de espacio en este bloque la direccin devolviendo malloc haciendo uso de un puntero. Un puntero es una variable que contiene una direccin de una posicin de memoria que puede corresponder o no a una variable declarada en un programa. La declaracin de una variable puntero debe indicar el tipo de dato al que apunta; para ello se hace preceder a

Haga una consulta en la biblioteca virtual de la UNAD para indicar el concepto de apuntadores y la importancia en la programacin de c++

APORTE COLABORATIVO 1

su nombre por un asterisco (*). Programacin en C++ Luis Snchez Garca. <tipo de dato apuntado> *<identificador del puntero> C++ no inicializa los punteros cuando se declaran y es preciso inicializarlos antes de su uso. Despus de la inicializacin se puede utilizar el puntero pata referenciar los datos direccionados. Para asignar una direccin de memoria a un puntero se utiliza el operador $. Este mtodo de inicializacin denominado Esttico requiere. Asignar memoria estticamente definiendo una variable y, a continuacin hacer que el puntero apunte al valor de la variable Asignar un valor a la direccin de memoria. Existe un segundo mtodo para inicializar un puntero: asignacin dinmica de memoria, Este mtodo utiliza los operadores new y delete

APORTE COLABORATIVO 1 2. Aplicacin de los apuntadores. Analice el siguiente cdigo que es una parte de un programa como aplicacin de apuntadores a apuntadores, complete las lneas de cdigo que faltan, complelo y lo ejecuta y as confirma la salida en pantalla, documente cada una de las lneas de cdigo y exprese el resultado que arrojan las variables: a, *x, **y, ***z, en las lneas de la 10 a la 13 para lo cual se debe realizar y anexar a este punto la prueba de escritorio.

Lnea

Cdigo fuente

Documente cada lnea de cdigo y los resultados de la lnea 10 a la 13

1 2 3 4 5 6 7

int main(){ int a=20; int *x, **y, ***z ; x = &a; *x = 150; y = &x ; **y += *x;

//son apuntadores, x, y ,z de apuntadores // x toma la direccin de a. y toma la direccin de x //suma lo que hay en la direccin de y lo que hay en x, siendo el mismo bloque se dobla (150+150) z toma la direccin de y. Suma lo que hay en z, y, x siendo el mismo bloque o apuntando al mismo bloque, 300+300+300. //=900 y todo da 900 porque todas estaban apuntando al mismo bloque. //=900 //=900 //=900 Genera una espera en pantalla permitiendo mostrar los resultados, mientras se pulsa una tecla. Para devolver a donde se le especifique. Cierra el main

8 9

z = &y; ***z += **y + *x;

10

cout << \nEl valor de a es:<<a;

11 12 13 14

cout << \nEl valor de *x es:<<*x; cout <<\nEl valor de **y es:<<**y; cout <<\nEl valor de ***z es:<<***z; system(PAUSE);

15 16

return 0; }

APORTE COLABORATIVO 1

Pantallazo, salida por pantalla del programa punto dos.

También podría gustarte