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

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

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

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

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

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

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

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

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

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

Пример:

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

#define NUM_PTRS    10
#define NUM_BYTES   16

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




Letyshops [lifetime]