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++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Нетология

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

farheapchecknode

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

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

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

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

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

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

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

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

Пример:

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

#define NUM_PTRS    10
#define NUM_BYTES   16

int main(void)
{
   char far *array[NUM_PTRS];
   int i;
   for(i=0; i<NUM_PTRS; i++)
     array[i] = farmalloc(NUM_BYTES);
   for(i=0; i<NUM_PTRS; i+=2)
     farfree(array[i]);
   for(i=0; i<NUM_PTRS; i++)
   {
      printf("Узел %2d",i);
      switch(farheapchecknode(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;
}



Letyshops [lifetime]