EOF
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

calloc

Alloue un tableau dans la mémoire avec des éléments initialisés à 0.

void *calloc( 
   size_t num,
   size_t size 
);
num

Nombre d'éléments.

size

longueur en octets de chaque élément.

calloc retourne un pointeur vers l'espace alloué. Espace disque désigné par la valeur de retour est obligatoirement aligné pour le stockage d'un type d'objet. Pour obtenir un pointeur vers un type autre qu' void, utilisez un cast de type sur la valeur de retour.

La fonction d' calloc alloue de l'espace de stockage pour un tableau d'éléments d' num , chacun d'octets d' size de longueur. chaque élément est initialisé à 0.

ensembles errno d'calloc à ENOMEM si une allocation de mémoire échoue ou si la quantité de mémoire demandée dépasse _HEAP_MAXREQ. Pour plus d'informations sur cette et d'autres codes d'erreur, consultez errno, _doserrno, _sys_errlist, et _sys_nerr.

appels malloc d'calloc d'utiliser la fonction C++ _set_new_mode pour définir le nouveau mode de gestionnaire. Le nouveau mode de gestionnaire indique si, en cas de échec, malloc est d'appeler la nouvelle routine de gestionnaire comme définie par _set_new_handler. Par défaut, malloc n'appelle pas la nouvelle routine de gestionnaire en cas de échec pour allouer de la mémoire. Vous pouvez substituer ce comportement par défaut afin que, lorsque calloc n'allouent pas la mémoire, malloc appelle la nouvelle routine de gestionnaire de la même façon que l'opérateur d' new nécessaire si elle échoue pour la même raison. Pour substituer la valeur par défaut, appelez

_set_new_mode(1)

tôt dans votre programme, ou lien avec NEWMODE.OBJ (consultez Options de lien).

Lorsque l'application est liée à une version debug des bibliothèques runtime C, calloc le résout vers _calloc_dbg. Pour plus d'informations sur la façon dont le tas est exécuté pendant le processus de débogage, consultez Le tas de débogage CRT.

calloc est __declspec(noalias) marqué et __declspec(restrict), ce qui signifie que la fonction est garantie ne pas modifier les variables globales, et que le pointeur retourné pas alias. Pour plus d'informations, consultez noalias et le restreignez.

routine

en-tête requis

calloc

<stdlib.h> et <malloc.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

// crt_calloc.c
// This program uses calloc to allocate space for
// 40 long integers. It initializes each element to zero.
 
#include <stdio.h>
#include <malloc.h>

int main( void )
{
   long *buffer;

   buffer = (long *)calloc( 40, sizeof( long ) );
   if( buffer != NULL )
      printf( "Allocated 40 long integers\n" );
   else
      printf( "Can't allocate memory\n" );
   free( buffer );
}
alloué 40 longs entiers

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.