Freigeben über


_heapset

Überprüft häuft für minimale Konsistenz und legt die zollfreien Einfuhren auf einen angegebenen Wert fest.

int _heapset( 
   unsigned int fill 
);

Parameter

  • fill
    Auffüllzeichen.

Rückgabewert

_heapset gibt eine der folgenden Manifest konstanten der ganze Zahl zurück, die in Malloc.h definiert sind.

  • _HEAPBADBEGIN
    Ursprüngliche Header ungültig oder nicht gefunden.

  • _HEAPBADNODE
    Heap beschädigt oder ungültiger Knoten gefunden.

  • _HEAPEMPTY
    Heap nicht initialisiert.

  • _HEAPOK
    Heap konsistent zu sein scheint.

Wenn ein Fehler auftritt, legt diesen fest. ENOSYSzu errno_heapset

Hinweise

Die _heapset-Funktion zeigt freie Speicheradressen oder Knoten an, die eine versehentlich überschrieben wurden.

_heapset minimale Überprüfung auf Konsistenz auf den Heap und legt dann jedes Byte der zollfreien Einfuhren des Heaps dem fill-Wert fest.Dieser bekannte Wert zeigt an, welche Speicherorte des Heaps nicht angefügten Knoten enthalten und welche Daten enthalten, die auf unbeabsichtigt freigegebenen Speicher geschrieben wurden.Wenn das Betriebssystem nicht _heapset(z. B. Windows 98) unterstützt, gibt die Funktion _HEAPOK zurück und legt ihn fest. ENOSYSzu errno

Anforderungen

Routine

Erforderlicher Header

Optionaler Header

_heapset

<malloc.h>

<errno.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Beispiel

// 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 );
}
  

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Speicherbelegung

_heapadd

_heapchk

_heapmin

_heapwalk