farheapcheckfree
Функция Проверяет свободные блоки в глобальной динамической
области памяти на констнтное значение.
Синтаксис #include<alloc.h>
int farheapcheckfree(unsigned int fillvalue);
Файл, содержащий alloc.h
прототип
Описание ????????????????
Возвращемое При ошибке возращется значение < 0, при успешном
значение завершение возвращается значение > 0.
Если нет глобальной динамической области памяти, то
возвращается значение _HEAPEMPTY (1).
Если глобальный heap проверен, то возвращается
_HEAPOK (2).
Если память запорчена, то возвращается
_HEAPCORRUPT(-1).
Если зачение заполнения отличается от fillvalue, то
возвращается _BADVALUE (-3).
Переносимость farheapcheckfree уникальна для DOS. Функция не
совместима с Windows.
Смотрите также farheapfillfree, heapcheckfree.
Пример:
#include<mem.h>
#include<stdio.h>
#include<alloc.h>
#define NUM_PTRS 10
#define NUM_BYTES 16
int main(void)
{
char far *array[NUM_PTRS];
int i;
int j;
int res;
for(i=0; i<NUM_PTRS; i++)
if((array[i] = farmalloc(NUM_BYTES))==NULL)
{
printf("Не хватает памяти\n");
return 1;
}
for(i=0; i<NUM_PTRS; i+=2)
farfree(array[i]);
if(farheapfillfree(1) < 0)
{
printf(" Память запорчена\n");
return 1;
}
for(i=0; i<NUM_PTRS; i+=2)
for(j=0; j<NUM_BYTES; j++)
array[i][j]=0;
res = farheapcheckfree(1);
if(res<0)
switch(res)
{
case _HEAPCORRUPT:
printf(" Память запорчена\n");
return 1;
case _BADVALUE:
printf("Неверное содержимое пустой памяти \n");
return 1;
default:
printf(" Нераспознаваемая ошибка\n");
return 1;
}
printf("Все нормально\n");
return 0;
}
|