Partager via


_heapset

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

int _heapset( 
   unsigned int fill 
);

Paramètres

  • fill
    Caractère Fill.

Valeur de retour

_heapset retourne un des constantes de manifeste d'entiers suivantes définies dans Malloc.h.

  • _HEAPBADBEGIN
    Les informations d'en-tête initiales sont non valides ou introuvables.

  • _HEAPBADNODE
    Tas endommagé ou nœud incorrect trouvé.

  • _HEAPEMPTY
    Tas pas encore initialisé

  • _HEAPOK
    Le tas apparaît être cohérent.

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

Notes

La fonction _heapset affiche les emplacements des nœuds de mémoire disponibles qui ont été remplacés involontairement.

_heapset examine la cohérence minimale sur le tas et affecte chaque octet des entrées libres du tas à la valeur fill. Cette valeur connue montre quels emplacements de mémoire du tas contiennent les nœuds disponibles et quels emplacements contiennent des données qui ont été involontairement écrites dans 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 affecte à errno la valeur ENOSYS.

Configuration requise

Routine

En-tête requis

En-tête facultatif

_heapset

<malloc.h>

<errno.h>

Pour plus d'informations sur la compatibilité, consultez 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 );
}
  

Équivalent .NET Framework

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

Voir aussi

Référence

Allocation de mémoire

_heapadd

_heapchk

_heapmin

_heapwalk