CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
heapcheckfree
heapcheckfree
Функция Проверяет свободные блоки памяти на константное значение. Синтаксис #include<alloc.h> int heapcheckfree(unsigned int fillvalue); Файл, содержащий alloc.h прототип Описание ???????????????? Возвращемое При ошибке возращется значение < 0, при успешном значение завершение возвращается значение > 0. Если нет памяти, то возвращается значение _HEAPEMPTY (1). Если память проверена,то возвращается_HEAPOK (2). Если память запорчена, то возвращается _HEAPCORRUPT(-1). Если зачение заполнения отличается от fillvalue, то возвращается _BADVALUE (-3). Переносимость heapcheckfree уникальна для DOS. Функция не совместима с Windows. Смотрите также farheapcheckfree. Пример: #include<mem.h> #include<stdio.h> #include<alloc.h> #define NUM_PTRS 10 #define NUM_BYTES 16 int main(void) { char *array[NUM_PTRS]; int i; int res; for(i=0; i<NUM_PTRS; i++) array[i] = malloc(NUM_BYTES); for(i=0; i<NUM_PTRS; i+=2) free(array[i]); if(heapfillfree(1) < 0) { printf(" Память запорчена\n"); return 1; } for(i=0; i<NUM_PTRS; i+=2) memset(array[i],0,NUM_BYTES); res = heapcheckfree(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; }