_heapset
Проверяет кучи на минимальную согласованность и устанавливает записи освобождения в указанное значение.
int _heapset(
unsigned int fill
);
Параметры
- fill
Символ для заполнения.
Возвращаемое значение
_heapset возвращает одну из следующих целочисленных констант манифеста, определенных в Malloc.h.
_HEAPBADBEGIN
Начальные сведения о заголовке не найдены или недопустимы._HEAPBADNODE
Куча повреждена или обнаружен плохой узел._HEAPEMPTY
Куча еще не инициализирована._HEAPOK
Куча представляется согласованной.
Кроме того, при возникновении ошибки _heapset устанавливает errno в ENOSYS.
Заметки
Функция _heapset показывает области со свободной памятью или узлы, которые были непреднамеренно перезаписаны.
_heapset проверяет минимальную согласованность в куче, а затем устанавливает каждый байт записей освобождения кучи в значение fill. Это известное значение указывает, какие области памяти кучи содержат свободные узлы, и какие области содержат данные, которые были непреднамеренно отнесены к освобожденной памяти. Если операционная система не поддерживает _heapset(например, Windows 98), функция возвращает _HEAPOK и устанавливает errno в ENOSYS.
Требования
Подпрограмма |
Обязательный заголовок |
Необязательный заголовок |
---|---|---|
_heapset |
<malloc.h> |
<errno.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// 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
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.