다음을 통해 공유


_heapset

힙에서 최소한의 일관성을 검사하고 사용 가능한 항목을 지정된 값으로 설정합니다.

Important

이 함수는 사용되지 않습니다. Visual Studio 2015부터 CRT에서 사용할 수 없습니다.

구문

int _heapset(
   unsigned int fill
);

매개 변수

fill
채우기 문자.

반환 값

_heapset는 Malloc.h에 정의된 다음 정수 매니페스트 상수 중 하나를 반환합니다.

설명
_HEAPBADBEGIN 초기 헤더 정보가 잘못되었거나 없습니다.
_HEAPBADNODE 힙이 손상되었거나 잘못된 노드가 있습니다.
_HEAPEMPTY 힙이 초기화되지 않았습니다.
_HEAPOK 힙이 일치하는 것 같습니다.

또한 오류가 발생하는 경우 _heapseterrnoENOSYS로 설정합니다.

설명

_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 );
}
OK - heap is fine

참고 항목

메모리 할당
_heapadd
_heapchk
_heapmin
_heapwalk