int heapchecknode(void *ptr)
int farheapchecknode(void far *ptr)
Прототип:
Описание:
Эти функции не определены стандартом ANSI С и являются специфическими для Borland С++ .
Функции heapchecknode() и farheapchecknode() проверяют статус единственного узла памяти, на который указывает параметр ptr. Функция heapchecknode() проверяет ближнюю кучу, а farheapchecknode() проверяет дальнюю кучу. Обе функции возвращают одно из следующих значений:
Величина | Значение |
---|---|
_BADNODE | Заданный узел не может быть найден |
_FREEENTRY | Заданный узел является свободной памятью |
_HEAPCORRUPT | Найдена ошибка в куче |
_HEAPEMPTY | Куча пуста |
_USEDENTRY | Заданный узел используется |
Если любая из этих функций вызывается с указателем на узел, который уже был освобожден, то возвращается значение _BADNODE.
Пример:
Следующий код иллюстрирует, как проверить узел в куче.
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
int main(void)
{
char *ptr;
int status;
if((ptr = (char *) malloc (10)) == NULL)
exit(1);
status = heapchecknode(ptr);
if(status == _USEDENTRY)
printf("Node is being used.\n");
else
printf("Error in heap.\n");
free (ptr);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
int main(void)
{
char *ptr;
int status;
if((ptr = (char *) malloc (10)) == NULL)
exit(1);
status = heapchecknode(ptr);
if(status == _USEDENTRY)
printf("Node is being used.\n");
else
printf("Error in heap.\n");
free (ptr);
return 0;
}