C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 heapchecknode / h / Библиотечн. функции Borland C++

heapchecknode

Функция            Ищет и проверяет отдельный узел памяти.

Синтаксис          #include<alloc.h>
                   int heapchecknode(void *node);

Файл, содержащий   alloc.h
прототип

Описание           Если узел   был   освобожден    и    heapchecknode
                   вызывается с указателем на освобожденный узел,  то
                   heapchecknode  может  вернуть  значение  _BADNODE,
                   вместо предполагаемого _FREEENTRY.  Это происходит
                   потому,  что соседние свободные блоки сливаются, и
                   блок,  указанный  при  вызове  функции,  больше не
                   существует.

Возвращемое        При ошибке возращется значение < 0, при успешном
значение           завершение возвращается значение > 0.

                   Если нет   памяти,   то   возвращается    значение
                   _HEAPEMPTY (1).
                   
                   Если память     запорчена,     то     возвращается
                   _HEAPCORRUPT(-1).
                   
                   Если узел  не  найден,  то  возвращается  _BADNODE
                   (-2).
                   
                   Если узел освобожден,  то возвращается  _FREEENTRY
                   (3).
                   
                   Если узел,  это используемый блок, то возвращается
                   _USEDENTRY (4)

Переносимость      heapcheckfree уникальна  для   DOS.   Функция   не
                   совместима с Windows.

Смотрите также     farheapchecknode.

Пример:

#include<stdio.h>
#include<alloc.h>

#define NUM_PTRS    10
#define NUM_BYTES   16

int main(void)
{
   char *array[NUM_PTRS];
   int i;
   for(i=0; i<NUM_PTRS; i++)
     array[i] = malloc(NUM_BYTES);
   for(i=0; i<NUM_PTRS; i+=2)
     free(array[i]);
   for(i=0; i<NUM_PTRS; i++)
   {
      printf("Узел %2d",i);
      switch(heapchecknode(array[i]))
      {
         case _HEAPEMPTY:
             printf(" Нет памяти\n");
             break;
         case HEAPCORRUPT:
             printf(" Память запорчена\n");
             break;
         case _BADNODE:
             printf(" Неверный узел\n");
             break;
         case _FREEENTRY:
             printf(" Свободный блок\n");
             break;
         case _USEDENTRY:
             printf(" Занятый блок\n");
             break;
         default:
             printf(" Неизвестное возвращаемое значение\n");
             break;
     }
  }
  return 0;
}