La diferencia entre calloc y malloc
1. Asignar espacio de memoria a la función malloc
Formulario de llamada: (especificador de tipo*) malloc (tamaño)
Función: en el área de almacenamiento dinámico de la memoria Asigne un área contigua de longitud "tamaño" bytes. El valor de retorno de la función es la primera dirección del área.
El "especificador de tipo" indica para qué tipo de datos se utiliza esta área. (Especificador de tipo *) significa convertir el valor de retorno a un puntero de este tipo. "tamaño" es un número sin signo. Por ejemplo:
pc=(char *) malloc (100); significa asignar 100 bytes de espacio de memoria y forzarlo a un tipo de matriz de caracteres
El valor de retorno de la función. es Puntero a la matriz de caracteres, asigne el puntero a la variable de puntero pc.
2. Función calloc para asignar espacio de memoria
calloc también se utiliza para asignar espacio de memoria. Formulario de llamada: (especificador de tipo *)calloc(n,size)
Función: asignar n áreas consecutivas con una longitud de bytes de "tamaño" en el área de almacenamiento dinámico de la memoria. El valor de retorno de la función es la primera dirección del área. (especificador de tipo *) se utiliza para la conversión. La única diferencia entre la función calloc y la función malloc es que se pueden asignar n bloques de área a la vez. Por ejemplo: ps=(struet stu*) calloc(2,sizeof (struct
stu)); donde sizeof(struct
stu) es encontrar la longitud de la estructura de stu. Por lo tanto, el significado de esta declaración es: asignar 2 áreas consecutivas de acuerdo con la longitud del stu, forzar la conversión al tipo stu y asignar su primera dirección a la variable de puntero ps.
En pocas palabras:
malloc permite asignar memoria desde el grupo de memoria espacial. El parámetro de malloc() es un número entero que especifica el número de bytes necesarios.
Por ejemplo: P=(int*)malloc(n*sizeof(int));
colloc es similar a malloc, pero la principal diferencia es que el valor almacenado en el espacio de memoria asignado tiene por defecto 0. Cuando se usa malloc, la memoria asignada puede ser cualquier valor.
colloc requiere dos parámetros, el primero es el número de variables que necesitan asignar memoria y el segundo es el tamaño de cada variable. p>
Por ejemplo: P=(int*)colloc(n,colloc(int));