Nous recommandons d’utiliser Visual Studio 2017

_recalloc

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Une combinaison de realloc et calloc. Réalloue un tableau dans la mémoire et initialise ses éléments à 0.

void *_recalloc(   
   void *memblock  
   size_t num,  
   size_t size   
);  

Paramètres

memblock
Pointeur vers le bloc de mémoire précédemment alloué.

num
Nombre d'éléments.

size
Longueur en octets de chaque élément.

_recallocRetourne un void pointeur vers le bloc de mémoire réalloué (et éventuellement déplacé).

S’il n’est pas suffisamment de mémoire pour étendre le bloc à la taille donnée, le bloc d’origine reste inchangé, et NULL est retourné.

Si la taille demandée est zéro, le bloc désigné par memblock est libérée ; la valeur de retour est NULL, et memblock pointe sur un bloc libéré.

La valeur de retour pointe vers un espace de stockage qui est obligatoirement aligné correctement pour le stockage de tout type d'objet. Pour obtenir un pointeur vers un type autre que void, utilisez un cast de type sur la valeur de retour.

Le _recalloc fonction modifie la taille d’un bloc de mémoire alloué. Le memblock pointe vers le début du bloc de mémoire. Si memblock est NULL, _ recalloc se comporte de la même façon que calloc et alloue un nouveau bloc de num * size octets. Chaque élément est initialisé à 0. Si memblock n’est pas NULL, il doit être un pointeur retourné par un appel précédent à calloc, malloc, ou realloc.

Étant donné que le nouveau bloc peut être dans un nouvel emplacement de mémoire, le pointeur retourné par _recalloc n’est pas garanti comme étant le pointeur passé le memblock argument.

_recallocdéfinit errno à ENOMEM si l’allocation de mémoire échoue ou si la quantité de mémoire demandée dépasse _HEAP_MAXREQ. Pour plus d’informations sur ce périphérique et autres codes d’erreur, consultez errno, _doserrno, _sys_errlist et _sys_nerr.

recallocappels realloc afin d’utiliser le C++ _set_new_mode fonction pour définir le nouveau mode de gestionnaire. Le nouveau mode de gestionnaire indique si, en cas d’échec, realloc consiste à appeler la routine du gestionnaire comme défini par _set_new_handler. Par défaut, realloc n’appelle pas la routine du gestionnaire en cas d’échec d’allocation de mémoire. Vous pouvez substituer ce comportement par défaut afin que, lorsque _recalloc ne parvient pas à allouer de la mémoire, realloc appelle la routine du Gestionnaire de la même façon que le new opérateur est en cas d’échec pour la même raison. Pour substituer la valeur par défaut, appelez

_set_new_mode(1)  

tôt dans le programme, ou un lien avec NEWMODE.OBJ.

Lorsque l’application est liée à une version debug des bibliothèques Runtime C, _recalloc résout _recalloc_dbg. Pour plus d’informations sur la gestion du segment de mémoire pendant le processus de débogage, consultez le tas de débogage CRT.

_recallocest marqué __declspec(noalias) et __declspec(restrict), ce qui signifie que la fonction ne peut ne pas modifier les variables globales, et que le pointeur retourné n’est pas un alias. Pour plus d’informations, consultez noalias et restreindre.

RoutineEn-tête requis
_recalloc<stdlib.h>et<malloc.h></malloc.h></stdlib.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Allocation de mémoire
_recalloc_dbg
_aligned_recalloc
_aligned_offset_recalloc
gratuit
Options de lien

Afficher: