Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

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;
 
 }

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS