Es sabido que malloc reserva un espacio en memoria para el programa que deseemos realizar y calloc hace exactamente lo mismo Pero además tienen capacidades adicionales (que las hacen mas caras computacionalmente hablando, así que si no necesitas ninguna de estas características utiliza directamente malloc. Sino estarás malgastando recursos).
una de las diferencias con malloc, es que calloc si inicializa en cero los elementos de un array dinamico.
Inicializa la zona de memoria reservada. Como se puede observar sus argumentos son diferentes de las de la función malloc que sólo recibía el número de bytes a reservar. Para calloc es necesario dar el número de elementos a reservar y el tamaño de cada uno de esos elementos. Así tenemos que por ejemplo:
Declaración de calloc:
int* pi;
pi = calloc(50,sizeof(int));
Reservará espacio para 50 enteros asignando al puntero pi la dirección en memoria del primero.
CODIGO:
#include <stdio.h>
#include <stdlib.h> ------------------------->recordamos que la libreria stdlib.h siempre ira
como cabecera mientras necesitamos
void main (){
int a, i;
int *ptr; -------------------------> Declaracion de variables y punteros.
a=0;
printf ("Ingrese el numero de espacios a reservar en memoria: ");
scanf ("%d", &a); --------------------> se lee los espacios que se desean reservar.
ptr=(int*)calloc(a, sizeof(int)); -----------> utilización de calloc en el código, para reservar
el espacio que se digite en la memoria.
for (i=0;i<a;i++){
printf ("Ingrese un numero => %d: ", i+1); ----------------> ingreso de números para ocupar
scanf ("%d", &ptr[i]); espacios reservados en la
} memoria.
printf ("impresion de numeros ingresados en los espacios de la memoria: \n");
for (i=0;i<a;i++)
printf ("%d ", ptr[i]); -------------------> Impresión de números ingresados en memoria.
free (ptr); --------------------> con free liberamos el espacio que estaba ocupado en la memoria.
}
Siguiendo este enlace se podrá descargar el código referente a calloc:
CODIGO CALLOC.
A continuación se encuentra el video tutorial referente a calloc.
ESPERAMOS QUE HAYAN ENTENDIDO ESTE TEMA!! :D
No hay comentarios:
Publicar un comentario