Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Comprueba que los montones mantienen una coherencia mínima y establece las entradas libres a un valor especificado.
Importante
Esta función está obsoleta. A partir de Visual Studio 2015, no está disponible en CRT.
Sintaxis
int _heapset(
unsigned int fill
);
Parámetros
fill
Carácter de relleno.
Valor devuelto
_heapset devuelve una de las siguientes constantes de manifiesto enteras, definidas en Malloc.h.
| Valor | Descripción |
|---|---|
_HEAPBADBEGIN |
La información de encabezado inicial no es válida o no se encuentra. |
_HEAPBADNODE |
Se ha encontrado un montón dañado o un nodo incorrecto. |
_HEAPEMPTY |
El montón no está inicializado. |
_HEAPOK |
El montón parece ser coherente. |
Además, si se produce un error, _heapset establece errno en ENOSYS.
Comentarios
La función _heapset muestra las ubicaciones de memoria libre o los nodos que se han sobrescrito accidentalmente.
_heapset comprueba la coherencia mínima en el montón y, después, establece cada byte de las entradas libres del montón al valor fill . Este valor conocido muestra las ubicaciones de memoria del montón que contienen nodos libres y las que contienen datos que se escribieron involuntariamente en la memoria liberada. Si el sistema operativo no admite _heapset(por ejemplo, Windows 98), la función devuelve _HEAPOK y establece en errno ENOSYS.
Requisitos
| Routine | Encabezado necesario | Encabezado opcional |
|---|---|---|
_heapset |
<malloc.h> | <errno.h> |
Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.
Ejemplo
// 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