Diferencia clave: 'Calloc' y 'Malloc' se refieren al rendimiento de la asignación de memoria dinámica en el lenguaje de programación C. Un 'calloc' inicializa la memoria asignada con cero, mientras que un 'malloc' no lo hace.
Tanto 'calloc' como 'malloc' son funciones de biblioteca estándar.
Su sintaxis es la siguiente:
void * calloc (number_of_blocks, size_of_each_block_in_bytes);
Aquí, 'void' es una función general de C, que no devuelve ningún valor. El número de elementos en el primer argumento especifica el tamaño en bytes de un elemento al segundo argumento. La dirección se devuelve después de la partición correcta, de lo contrario, se devuelve un valor NULL en caso de fallo de la función.
Su sintaxis es la siguiente:
void * malloc (size_in_bytes);
Específicamente, devuelve la dirección de una manera genérica (nulo *). Si 'malloc' no puede asignar la memoria, devuelve -1, de lo contrario, devuelve la dirección desde la que se asigna la memoria. La memoria asignada puede tener la forma de un número entero, por tipo de conversión de la dirección vacía como int *; La memoria asignada también puede tener la forma de un flotador, solo por el tipo de conversión de la misma dirección vacía como flotante *.
Comparación entre Calloc y Malloc:
Calloc | Malloc | |
Funciones básicas | La función de biblioteca asigna una región de la memoria, que es lo suficientemente grande como para contener los "n elementos" de los bytes de "tamaño" cada uno. | La función de biblioteca solo asigna los bytes de "tamaño" de memoria. |
Inicialización | Inicializa el contenido de la memoria a ceros. | No inicializa el contenido de la memoria a ceros. |
Número de argumentos | Aquí hay dos argumentos. | Aquí solo hay un argumento. |
Valores asignados | La región asignada se inicializa a cero. | El contenido de la memoria asignada no se modifica, es decir, la memoria contiene valores impredecibles o de basura, lo que crea un riesgo. |
Devuelve valor | puntero void (void *). Después de una asignación exitosa, se devuelve un puntero al bloque de memoria. | puntero void (void *). Después de una asignación exitosa, se devuelve un puntero al bloque de memoria. |