Está en la página 1de 3

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


DEPARTAMENTO DE PROGRAMACIÓN
GUÍA DE ACTIVIDAD N° 14 LABORATORIO N° 14

Facilitador: ______________________________ Asignatura:___________________________


Estudiantes:_______________________________Fecha: ___/____/____ Grupo:___________

A. TÍTULODE LA EXPERIENCIA: Uso de arreglos y liberación de la memoria, Malloc, calloc.

B. TEMAS: Capitulo 2, Manejo de punteros, y direcciones de memoria, uso del malloc..

C. OBJETIVO:
Manipulación de los arreglos, su contenido, uso de la instrucción malloc. Y liberación de la memoria.
.
D. RECURSOS:
Laboratorio con conexión a internet, PC, Laptop.

E. RÚBRICA:
Asistencia: 20%
Resultados de la búsqueda: 20%
Sustentación del trabajo: 40%
Consideraciones Finales (individual ): 20%

Actividades del profesor:

1. Presentar el laboratorio a desarrollar.


2. Dar indicaciones del trabajo a realizar:
 Utilizar referencias para el desarrollo de la experiencia.
 Definición, comprensión y análisis de las buenas prácticas de programación en lenguaje C y punteros.

Actividades de los estudiantes:

Investigar en internet, en fuentes de información confiables, tales como: sitios web de organizaciones
reconocidas, artículos de investigación, artículos técnicos, reportes técnicos, etc…, y elaborar un informe
impreso.

1. Confección del programa que manipule la memoria, con llamoc, observar los resultados del
programa en la salida. Liberar la memoria calloc, y free(vect1); free(vect2);
2. Ver programas pt018, pt20, pt21 sobre el manejo de los arreglos.
3. Fecha de entrega, el en Word y subir a la plataforma UTP: http://ecampus.utp.ac.pa/moodle/

#include<stdio.h>
#include<stdlib.h>
// programa pt18. validar si hay memoria
// también modifiquemos el tamaño de malloc @ 700 laboratorio
// y ver resultados en el for

int main() {
int i;
int dato;
double *ptr ;
ptr = (double *) malloc(500 * sizeof (double) );
if (ptr == NULL) {
printf ("No hay memoria \ n");

1
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE PROGRAMACIÓN
GUÍA DE ACTIVIDAD N° 14 LABORATORIO N° 14

exit (1);
}
for ( i=0; i <500; i=i+1) {
ptr[i] = i+10; // valor de i
}
dato= (i)*( sizeof(*ptr) );
printf("\n imprimir valor i= %d ",i);
printf("\n imprimir dato i*(2,4,8)bytes= %d ",dato);
printf("\n imprimir size ptr = %d ",sizeof(*ptr));
}

-----// programa pt20.c uso del malloc y calloc : observar diferencias entre las dos

#include <stdio.h>
int main() {
int *vect1, n;
int *vect2;
printf("Numero de elementos del vector: ");
scanf("%d", &n); /* Reservar memoria para almacenar n enteros */

vect1 = calloc (n, sizeof(int) );


vect2 = malloc (n, sizeof(int) ); // cual es la diferencia ??
/* Verificamos que la asignación se haya realizado correctamente */
if (vect1 == NULL) {
printf ("%d No hay memoria disponible para el valor de n= \n", n);
exit (1);
}

printf("\n imprimir(n) %d", n); /* Print size of structure */


printf("\n imprimir sizeof(vect1=calloc) %d", n*(sizeof(vect1) ) );
printf("\n imprimir sizeof(vect2=malloc) %d", n*(sizeof(vect2) ) );

printf("\n calloc= iniciariza variable %d", vect1[2] );


printf("\n calloc= iniciariza variable %d", vect1[3] );

printf("\n liberamos la memoria free(vect1,vect2) ");


free(vect1);
free(vect2);
return 0;
getch();
}
===============================================

2
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE PROGRAMACIÓN
GUÍA DE ACTIVIDAD N° 14 LABORATORIO N° 14

#include <stdio.h>
int main() {
// programa pt21.c
int *vect1, n; // ejemplo reservo 5 bytes
int *tmp_ptr ; // puntero temporal, utilizar realloc

printf("Numero de elementos del vector: ");


scanf("%d", &n); /* Reservar memoria para almacenar n enteros */

vect1 = (int *) malloc(n, sizeof(int) );


tmp_ptr= (int *) realloc(vect1,(n+5) ); // redimensiono a n+5

/* Verificamos que la asignación se haya realizado correctamente */


if (tmp_ptr == NULL) {
printf ("%d No hay memoria disponible para el valor de n= \n", n);
}
else { /* Reasignación exitosa. Asignar memoria a ptr */
vect1= tmp_ptr;
}
printf("\n imprimir(n) %d", n); /* Print size of structure */
printf("\n imprimir sizeof(vect1=malloc) %d", n*(sizeof(vect1) ) );
printf("\n imprimir sizeof(tmp_ptr=realloc) %d", *tmp_ptr );
printf("\n liberamos la memoria free(vect1,vect2) ");
free(vect1);
return 0;
getch();
}

También podría gustarte