La principale différence: «Calloc» et «Malloc» fait référence aux performances de l'allocation de mémoire dynamique dans le langage de programmation C. Un 'calloc' initialise la mémoire allouée à zéro, contrairement à un 'malloc'.
'Calloc' et 'malloc' sont des fonctions de bibliothèque standard.
Sa syntaxe est la suivante:
void * calloc (number_of_blocks, size_of_each_block_in_bytes);
Ici, 'void' est une fonction C générale qui ne renvoie aucune valeur. Le nombre d'éléments dans le premier argument spécifie la taille en octets d'un élément par rapport au second argument. L'adresse est renvoyée après le partitionnement, sinon une valeur NULL est renvoyée en cas d'échec de la fonction.
Sa syntaxe est la suivante:
void * malloc (size_in_bytes);
Plus précisément, il renvoie l'adresse de manière générique (void *). Si 'malloc' ne parvient pas à allouer de la mémoire, il renvoie -1, sinon l'adresse à partir de laquelle la mémoire est allouée. La mémoire allouée peut être sous la forme d'un entier, par type transformant l'adresse vide en entier *; la mémoire allouée peut aussi être sous la forme d'un float, simplement en tapant la même adresse vide que float *.
Comparaison entre Calloc et Malloc:
Calloc | Malloc | |
Les fonctions de base | La fonction de bibliothèque alloue une région de la mémoire suffisamment grande pour contenir les «n éléments» de «taille» octets. | La fonction de bibliothèque n'alloue que les octets de «taille» de la mémoire. |
Initialisation | Il initialise le contenu de la mémoire à zéro. | Il n'initialise pas le contenu de la mémoire à zéro. |
Nombre d'arguments | Ici, il y a deux arguments. | Ici, il n'y a qu'un seul argument. |
Valeurs attribuées | La région allouée est initialisée à zéro. | Le contenu de la mémoire allouée n'est pas modifié, c'est-à-dire que la mémoire contient des valeurs imprévisibles ou parasites, ce qui crée un risque. |
Renvoie la valeur | pointeur vide (void *). Après une affectation réussie, un pointeur sur le bloc de mémoire est renvoyé. | pointeur vide (void *). Après une affectation réussie, un pointeur sur le bloc de mémoire est renvoyé. |