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 исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Нетология

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

farheapwalk

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

Синтаксис          #include<alloc.h>
                   int farheapwalk(struct farheapinfo *hi);

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

Описание           farheapwalk подразумевает, что память не запорчена.
                   Для  проверки  перед  использованием   farheapwalk,
                   вызовите  farheapcheck.  При  достижении последнего
                   блока функция  возвращает  _HEAPOK.  При  следующем
                   вызове farheapwalk, она вернет _HEAPEND.

                   farheapwalk получает указатель  на  структуру  типа
                   heapinfo  (определена в файле alloc.h).  При первом
                   вызове farheapwalk  установите  поле  hi.ptr  в  0.
                   farheapwalk  вернет  вам  в этом поле адрес первого
                   блока в heap памяти.  Поле hi.size содержит  размер
                   этого блока в байтах. hi.in_use - это флаг, который
                   устанавливается,  если  этот  блок  используется  в
                   настоящий момент.

Возвращемое        Если нет глобальной динамической области памяти, то
значение           возвращается значение _HEAPEMPTY (1).
                   
                   Если структура heapinfo содержит верные данные,  то
                   возвращается _HEAPOK (2).
                   
                   Если достигнут  конец heap памяти,  то возвращается
                   _HEAPEND (5).

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

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

Пример:

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

#define NUM_PTRS    10
#define NUM_BYTES   16

int main(void)
{
   struct farheapinfo hi;
   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]);
   hi.ptr = NULL;
   printf("   Размер      Статус   \n");
   printf("   ------      ------   \n");
   while(farheapwalk(&hi) == _HEAROK)
      if(hi.in_use)
          printf("%7u     используется\n",hi.size);
      else
          printf("%7u     свободен\n",hi.size);
   return 0;
}



Letyshops [lifetime]