Freigeben über


_heapset

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

int _heapset( 
   unsigned int fill 
);

Parameter

  • fill
    Leerzeichen.

Rückgabewert

_heapset gibt eine der folgenden ganzzahligen Manifestkonstanten zurück, die in Malloc.h definiert sind.

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

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

  • _HEAPEMPTY
    Heap wurde nicht initialisiert.

  • _HEAPOK
    Heap wird, konsistent.

Wenn ein Fehler auftritt, setzt _heapseterrno zudem auf ENOSYS.

Hinweise

Die _heapset-Funktionsshows geben Speicheradressen oder Knoten frei, die versehentlich überschrieben werden.

_heapset überprüft für minimale Konsistenz auf dem Heap und legt dann jedes Byte der zollfreien Einfuhren des Heaps auf den Wert fill fest. zeigt dieses Wertes, bekannte die Speicheradressen des Heaps freie Knoten enthalten und die Daten enthalten, die unabsichtlich zu freigegebenen Speicher geschrieben wurden. Wenn das Betriebssystem nicht _heapset, (z Windows 98) unterstützt, wird _HEAPOK zurückgegeben und errno auf ENOSYS fest.

Anforderungen

Routine

Erforderlicher Header

Optionaler Header

_heapset

<malloc.h>

<errno.h>

Weitere Informationen zur Kompatibilität finden Sie unter 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. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Speicherbelegung

_heapadd

_heapchk

_heapmin

_heapwalk