Partager via


Méthode IMalloc ::Realloc (objidlbase.h)

Modifie la taille d’un bloc de mémoire précédemment alloué.

Syntaxe

void * Realloc(
  [in] void   *pv,
  [in] SIZE_T cb
);

Paramètres

[in] pv

Pointeur vers le bloc de mémoire à réallouer. Ce paramètre peut être NULL, comme indiqué dans la section Remarques ci-dessous.

[in] cb

Taille du bloc de mémoire à réallouer, en octets. Ce paramètre peut être 0, comme indiqué dans la section Remarques ci-dessous.

Valeur retournée

Si la méthode réussit, la valeur de retour est un pointeur vers le bloc de mémoire réalloué. Sinon, elle est NULL.

Remarques

Cette méthode réalloue un bloc de mémoire, mais ne garantit pas que son contenu est initialisé. Par conséquent, l’appelant est responsable de l’initialisation ultérieure de la mémoire. Le bloc alloué peut être supérieur à cb octets en raison de l’espace requis pour l’alignement et pour les informations de maintenance.

L’argument pv pointe vers le début du bloc. Si pv a la valeur NULL, Realloc alloue un nouveau bloc de mémoire de la même façon que IMalloc ::Alloc . Si pv n’est pas NULL, il doit s’agir d’un pointeur retourné par un appel antérieur à Alloc.

L’argument cb spécifie la taille du nouveau bloc, en octets. Le contenu du bloc est inchangé tant que la plus courte des tailles nouvelle et ancienne n’est pas atteinte, même si le nouveau bloc peut se trouver à un autre emplacement. Étant donné que le nouveau bloc peut se trouver dans un autre emplacement de mémoire, le pointeur retourné par Realloc n’est pas garanti comme pointeur passé par l’argument pv . Si pv n’a pas la valeur NULL et que cb a la valeur zéro, la mémoire pointée par pv est libérée.

Realloc retourne un pointeur void vers le bloc de mémoire réalloué (et éventuellement déplacé). La valeur de retour est NULL si la taille est égale à zéro et que l’argument de mémoire tampon n’est pas NULL, ou s’il n’y a pas suffisamment de mémoire disponible pour développer le bloc à la taille spécifiée. Dans le premier cas, le bloc d’origine est libéré ; dans la seconde, le bloc d’origine est inchangé.

L’espace de stockage désigné par la valeur de retour 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête objidlbase.h (inclure ObjIdl.h)

Voir aussi

IMalloc