Section courante

A propos

Section administrative du site

CALLOC

Allocation Combiné
Langage C stdlib.h

Syntaxe

void *calloc(size_t n,size_t taille);

Paramètres

Nom Description
n Ce paramètre permet d'indiquer le nombre de bloc de mémoire à allouer
taille Ce paramètre permet d'indiquer la taille du bloc de mémoire à allouer

Description

Cette fonction permet d'effectuer une réservation de n*taille d'octets de mémoire dynamique.

Algorithme

MODULE CALLOC(n, size)
   * Calculer la taille totale de la mémoire nécessaire
   totalSizen x size

   * Allouer de la mémoire
   pointer ← allocateMemory(totalSize)

   * Vérifier si l'allocation a échoué
   SI pointer est NULL ALORS
      * L'allocation a échoué
      RETOURNE NULL
   FIN SI

   * Initialiser la mémoire à zéro
   BOUCLE POUR i ← 0 JUSQU'A totalSize - 1 FAIRE
      pointer[i] ← 0
   FIN BOUCLE POUR
   RETOURNE pointer

Remarques

Exemple

Voici quelques exemples typiques de l'utilisation de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int * p = calloc(20,sizeof(int));
  7.     if(NULL != p) {
  8.         int I;
  9.         for(I = 0; I < 20; I++) {
  10.             p[I] = 1000-(I * 10);
  11.         }
  12.         printf("Valeur p[15] = %i\n",p[15]);
  13.         free(p);
  14.     } else {
  15.         printf("Impossible d'allouer de la mémoire dynamiquement !\n");
  16.     }
  17.     return 0;
  18. }

on obtiendra le résultat suivant :

Valeur p[15] = 850

Voir également

Langage de programmation - C - Référence de procédures et fonctions - realloc
Langage de programmation - C - Référence de procédures et fonctions - malloc
Langage de programmation - C - Référence de procédures et fonctions - free
Langage de programmation - C++ - Référence de procédures et fonctions - calloc

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 46.

Dernière mise à jour : Mardi, le 28 juillet 2015