Partage via


_heapset

Vérifie la cohérence minimale des tas et définit les entrées libres sur une valeur spécifiée.

Important

Cette fonction est obsolète. Depuis Visual Studio 2015, elle n’est pas disponible dans la bibliothèque CRT.

Syntaxe

int _heapset(
   unsigned int fill
);

Paramètres

fill
Caractère de remplissage.

Valeur retournée

_heapset retourne une des constantes manifestes entières suivantes définies dans Malloc.h.

Value Description
_HEAPBADBEGIN Informations d’en-tête initiales non valides ou introuvables.
_HEAPBADNODE Tas endommagé ou nœud incorrect trouvé.
_HEAPEMPTY Tas non initialisé.
_HEAPOK Le tas est cohérent.

En outre, si une erreur se produit, _heapset définit errno sur ENOSYS.

Notes

La fonction _heapset affiche les emplacements de mémoire disponible ou les nœuds qui ont été remplacés accidentellement.

_heapset vérifie la cohérence minimale sur le tas, puis définit chaque octet des entrées libres du tas sur la valeur fill . Cette valeur connue indique les emplacements de mémoire du tas qui contiennent des nœuds libres et ceux qui contiennent des données qui ont été écrites accidentellement dans de la mémoire libérée. Si le système d’exploitation ne prend pas en charge _heapset(par exemple, Windows 98), la fonction retourne _HEAPOK et définit la ENOSYSvaleur errno .

Spécifications

Routine En-tête requis En-tête facultatif
_heapset <malloc.h> <errno.h>

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

Exemple

// crt_heapset.c
// This program checks the heap and
// fills in free entries with the character 'Z'.

#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int heapstatus;
   char *buffer;

   if( (buffer = malloc( 1 )) == NULL ) // Make sure heap is
      exit( 0 );                        //    initialized
   heapstatus = _heapset( 'Z' );        // Fill in free entries
   switch( heapstatus )
   {
   case _HEAPOK:
      printf( "OK - heap is fine\n" );
      break;
   case _HEAPEMPTY:
      printf( "OK - heap is empty\n" );
      break;
   case _HEAPBADBEGIN:
      printf( "ERROR - bad start of heap\n" );
      break;
   case _HEAPBADNODE:
      printf( "ERROR - bad node in heap\n" );
      break;
   }
   free( buffer );
}
OK - heap is fine

Voir aussi

Allocation de mémoire
_heapadd
_heapchk
_heapmin
_heapwalk